Jquery自定义属性

Jos*_*e3d 30 javascript css jquery

我正在考虑在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>
Run Code Online (Sandbox Code Playgroud)
  • 你认为这是一个好方法吗?

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

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

  • 关于性能,我想这与类属性或ID的jQuery选择比使用自定义属性和过滤功能,如更快的"载,等...".这是正确的吗?

Nic*_*ver 89

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

<li data-something="CommonLi"></li> 
Run Code Online (Sandbox Code Playgroud)

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

$("li").data("something") //"CommonLi"
Run Code Online (Sandbox Code Playgroud)

对于您的其他问题:

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


小智 11

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

<li data-yourapp>...</li>
Run Code Online (Sandbox Code Playgroud)

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

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

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