Jquery自定义属性

时间:2010-11-10 14:45:12

标签: javascript jquery css

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

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

<ul Jquery="CommonUl">
    <li Jquery="CommonLi"></li>     
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
</ul>
  • 您认为这是一个好方法吗?

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

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

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

3 个答案:

答案 0 :(得分:87)

你可以这样做,虽然使用data- attributespart of the HTML5 specification),但是这样:

<li data-something="CommonLi"></li> 

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

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

对于您的其他问题:

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

答案 1 :(得分:10)

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

<li data-yourapp>...</li>

并像哈希表那样使用该属性

$("li").data("yourapp", { 
   points  : 2000,
   life    : 1,
   weapons : {
      firegun  : 0,
      missiles : 12
   }
});
通过这种方式,您将减少元素访问,并且您将检索所有自定义数据

答案 2 :(得分:1)

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

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