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