<input type ="button" name="buttonsel" id="buttonse1"/>
$("#buttonse1")
VS $("[name=buttonse1]")
在jquery中使用name和id有什么好处
答案 0 :(得分:12)
修改强>
点击此处查看完整详情: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
不是唯一的,多个元素可以共享相同的name
。 NAME
属性仅适用于a
,form
和input
元素。
答案 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将确保一定程度的唯一性,而不是在选择器中使用该名称。