$("#id")和$(" [id =]")之间的差异

时间:2016-09-19 06:36:33

标签: jquery

在我的页面中,由于某些原因(我没有找到与主题无关,因此没有解释),div会重复,并且在我的html中会生成两个具有相同id的div。在编写jquery代码以删除除最顶层之外的所有div时,我发现$("#id")只返回1个元素(注意:现在有两个div具有相同的id)而$("[id=]")正在返回2 }。最后,我的代码与$("[id=]")一起使用,但与$("#id")无关。 有什么理由吗?是$("#id")只返回它找到的具有指定id的第一个元素吗?

请注意,我已遇到thread,其中有类似问题,但未回答我的问题

1 个答案:

答案 0 :(得分:4)

事情$("#id")将始终为您提供单个结果,例如document.getelementById()但是当您执行$("[id=]")时,您发现所有具有特定属性的元素为id,因此它返回你有多个元素,因为它现在不使用javascript document.getelementById()

$("[id=]")是您想要从文档中选择符合某些规则的某些元素时使用的内容,例如

  

属性包含选择器[name * =“value”]

选择具有指定属性的元素,其值包含给定的子字符串。

  

属性包含Word Selector [name~ =“value”]

选择具有指定属性的元素,其值包含由空格分隔的给定单词。

  

属性以选择器结尾[name $ =“value”]

选择具有指定属性的元素,其值完全以给定字符串结尾。比较区分大小写。

等。

有关详细信息,请参阅https://api.jquery.com/category/selectors/ 但是,在您的HTML中,理想情况下,您应该id保持唯一。如果您希望多个元素具有相同的ID,请改用class