Jquery自定义属性

我正在考虑在Jquery中使用自定义属性来避免使用class或id属性,以免干扰html设计器。

考虑到这个想法,html应该是这样的:

  • 你认为这是一个好方法吗?

  • 您对这些自定义属性的W3Cvalidation有何看法?

  • 你知道如何用Jquery编程而不干扰html设计师的工作吗?

  • 关于性能,我认为使用类属性或id,jquery选择器比使用自定义属性和过滤函数(如“contains,etc …”)更快。 这是正确的吗?

你可以这样做,使用data-属性 ( HTML5规范的一部分 ),如下所示:

 
  • jQuery甚至在1.4.3+中内置了对这些内容的支持,例如:

     $("li").data("something") //"CommonLi" 

    对于您的其他问题:

    • 他们将validation它是否是HTML5 – 但不会破坏 HTML4中的任何内容
    • 这不应该干扰设计师,但它取决于哪个设计师
    • 如果从元素中获取,则性能与任何其他属性相同

    如果你计划有几个属性我建议设置一个唯一的命名空间属性,例如

     
  • ...
  • 并像哈希表一样使用该属性

     $("li").data("yourapp", { points : 2000, life : 1, weapons : { firegun : 0, missiles : 12 } }); 

    通过这种方式,您将减少元素访问,并且您将检索一次所有自定义数据

    我个人建议你使用jquery内置方法来保存每个元素的数据。 以下是用于保存数据的代码段:

     $("ul").data("CommonUl"); $("li").data("CommonLi");