在jquery中使用name vs id有什么好处

时间:2012-11-02 07:56:51

标签: jquery

<input type ="button" name="buttonsel" id="buttonse1"/>

$("#buttonse1") VS $("[name=buttonse1]")

在jquery中使用name和id有什么好处

6 个答案:

答案 0 :(得分:12)

修改

  • 名称中的名称=在表单中必须是唯一的。 id =中的名称在整个文档中必须是唯一的。
  • JavaScript需要唯一的名称,但是这里有太多的文档而没有唯一的name = names,因此W3人发明了必须唯一的id标记。不幸的是旧浏览器不理解它。因此,您需要在表单中使用两种命名方案。

点击此处查看完整详情:http://mindprod.com/jgloss/htmlforms.html#IDVSNAME


我可以识别元素唯一。

有效的html包含每个元素的唯一ID。

<input type ="button" name="buttonsel" id="buttonse1"/>
<input type ="button" name="buttonsel" id="newbutton"/>//valid for both id and name
<input type ="button" name="buttonsel" id="buttonse1"/>//not valid as id repeated but name is valid even if repeated

但您可以为可能无法找到不平等元素的多个项目指定相同的名称。

答案 1 :(得分:4)

按ID选择仍然比jquery中的名称快。

答案 2 :(得分:3)

好的,$("#")与JS本地document.getElementById()相比较慢,但它是你能找到的最快的jQuery选择器。但是不要费心。 #只是#而你的DOM中只有一个吗?

访问属性总是比较慢,如果我们考虑到我们计划使用name,就像我们正在处理classes一样,我们计划拥有1000多个具有相同名称的元素。 ..如果你担心的话,你可以做一些速度测试。

你的问题似乎有点奇怪,如果你已经有了一个ID,而且你知道ID是哇!而不是你告诉我1为什么不使用它? :)

答案 3 :(得分:1)

ID是独一无二的。所有HTML元素都支持ID属性。在jQuery中,使用id选择器比使用name

更快

NAME不是唯一的,多个元素可以共享相同的nameNAME属性仅适用于aforminput元素。

答案 4 :(得分:1)

如果您正在使用id,那么您将只选择1个元素,如果您已找到一个元素,JS将停止寻找另一个元素。

name中使用$('[name="something"]'),您可以拥有多个元素。 jQuery将在name="something"的每个HTML节点中查找。 name属性仅对input元素有效(即使您可以在其他元素中使用它)。此外,可以有多个具有name属性的有效元素(例如:<input type="radio"/><input type="checkbox"/>)。

答案 5 :(得分:0)

最重要的是,您会发现在选择器中使用#id的速度很多。见这里:

http://www.componenthouse.com/jQuery-Performance-analysis-of-selectors-td20.html

其次,HTML元素上的ID将确保一定程度的唯一性,而不是在选择器中使用该名称。