在我的页面中,由于某种原因(我发现与主题无关,因此不解释),一个 div 被重复,并且在我的 html 中生成了两个具有相同 id 的 div。在编写 jquery 代码来删除除最顶层之外的所有 div 时,我发现 $("#id")
仅返回 1 个元素(注意:现在有两个具有相同 id 的 div),而 $("[id=]")
返回了我 2
。所以最后我的代码可以与 $("[id=]")
一起使用,但不能与 $("#id")
一起使用。
有什么理由吗? $("#id")
是否仅返回它找到的具有指定 id 的第一个元素?
请注意,我已经遇到过 thread它有类似的问题但没有回答我的查询
最佳答案
事情是 $("#id")
总是会给出像 document.getelementById()
这样的单一结果,但是当你这样做时 $("[ id=]")
您正在查找给定属性为 id
的所有元素,因此它会返回多个元素,因为它不使用 javascript document.getelementById()
现在。
$("[id=]")
是当您想要从文档中选择一些遵循某些规则的元素时使用的内容,例如
Attribute Contains Selector [name*=”value”]
选择具有指定属性且其值包含给定子字符串的元素。
Attribute Contains Word Selector [name~=”value”]
选择具有指定属性且其值包含给定单词(以空格分隔)的元素。
Attribute Ends With Selector [name$=”value”]
选择具有指定属性且值完全以给定字符串结尾的元素。比较区分大小写。
等等。
有关更多信息,请参阅https://api.jquery.com/category/selectors/
然而,在您的 HTML 中,您最好将 id
保持为唯一。如果您希望多个元素具有相同的 id,请改用 class
。
关于jquery - $ ("#id") 和 $ ("[id=]") 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39566764/