$(“#id”)和$(“[id =]”)之间的区别
问题描述:
在我的页面中,由于某种原因(我没有发现与该主题相关,因此没有解释)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=]")
是当你要选择一些元素形成文档遵循一些规则像
属性,您使用的东西,包含选择[名* =”值”]
选择元素具有包含给定子字符串的值的指定属性。
属性包含字选择器[名〜=”值”]
选择具有与含有给定字,通过空格分隔的值指定的属性的元素。
属性完带选择[名$ =”值”]
选择具有与一个给定的字符串完全结束的值指定的属性的元素。比较是区分大小写的。
等
欲了解更多信息,请参阅https://api.jquery.com/category/selectors/ 但是在你HTML您应保持id
是独特。如果您希望多个元素具有相同的ID,请改为使用class
。
阅读官方文档https://api.jquery.com/id-selector/和https://api.jquery.com/attribute-equals-selector/ – Satpal
yes,'$(“#id”)'will will总是给你单一的结果。就像'document.getelementBuId'一样。检查'$(“body #id”)',我相信你会得到类似于'$(“[id =]”)的结果计数2' – vijayP
Hi Rajaprabhu,很长时间在SO –