Javascript Jquery自定义属性

Javascript Jquery自定义属性,javascript,jquery,css,Javascript,Jquery,Css,我正在考虑在Jquery中使用自定义属性,以避免使用类或id属性,从而不干扰html设计器 考虑到这一点,html应该是这样的: <ul Jquery="CommonUl"> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> <li Jquery="CommonLi"></li> <li Jquery="

我正在考虑在Jquery中使用自定义属性,以避免使用类或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等”)更快。是这样吗

您可以这样做,可以使用through(),如下所示:

<li data-something="CommonLi"></li> 
关于你的其他问题:

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

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

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

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

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

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

我对W3C验证的看法是,它将失败。:)您熟悉jQuery的
.data()
?(如果您需要将数据直接存储在标记中,这将不会有帮助)实际上@Pekka它会的,jQuery 1.4.3!调用
.data(“foo”)
将获取元素上
data foo=“value”
的值。@Pointy是的,但是
data-*
在HTML4中无效……哦,是的,@Pekka,但是现在所有的酷人们都在使用HTML5:-)@Pointy是的,!:)但还不是每个人都适合。这在HTML4中是无效的,所以如果支持旧的浏览器和W3C的有效性很重要的话,很遗憾,这不是一个选项。如果这不是问题,这是解决问题的最好方法go@Pekka-我同意,但是100%的有效性并没有100%的功能性重要…如果规范中没有需要这些的空白,它们就不会被添加到HTML5中:)增加HTML5 DOCTYPE应该兼顾双方。嗨,提前谢谢。。。反应很好。问题是我们可能不会单独使用HTML5,直到2012年才会完成。@Nick是的,没错。我的意思是,当你需要W3c的有效性时,它更多的是作为一个旁注,例如,对于一个构建过程,可能需要另一条路径,直到HTML5可以被完全使用。注:数据某些东西显然必须全部是小写的,因为在“某物”部分使用大写字母是行不通的。不知道这是官方规范还是Chrome的解释。首先,谢谢。。。我不知道这种存储每个元素数据的方法。问题是,我可能不需要说“所有ul和li都会附上以下数据”,而是会有一些特定的元素(可能在页面中有4个ul,我想将其应用于其中一个,而不是位置)。。。向你问好,很好。。。我不知道你能做到。
<li data-yourapp>...</li>
$("li").data("yourapp", { 
   points  : 2000,
   life    : 1,
   weapons : {
      firegun  : 0,
      missiles : 12
   }
});