2016-09-19 59 views
2

在我的页面中,由于某种原因(我没有发现与该主题相关,因此没有解释)div被重复,在我的HTML中生成具有相同ID的div。虽然编写jQuery代码去除除最顶层以外的所有div,但我发现$("#id")仅返回了我1个元素(注意:现在有两个具有相同ID的div),而$("[id=]")正在返回我2。所以最后我的代码与$("[id=]")一起工作,但不与$("#id")。 任何原因为什么? $("#id")是否只返回找到的具有指定ID的第一个元素?

请注意,我已经遇到一个thread其中有一个类似的问题,但没有回答我的查询

+3

阅读官方文档https://api.jquery.com/id-selector/和https://api.jquery.com/attribute-equals-selector/ – Satpal

+3

yes,'$(“#id”)'will will总是给你单一的结果。就像'document.getelementBuId'一样。检查'$(“body #id”)',我相信你会得到类似于'$(“[id =]”)的结果计数2' – vijayP

+0

Hi Rajaprabhu,很长时间在SO –

回答

4

的事情是$("#id")总会给你一个结果就像document.getelementById()但是当你做$("[id=]")你发现所有具有给定属性的元素为id,因此它会返回多个元素,因为它现在不使用javascript document.getelementById()

$("[id=]")是当你要选择一些元素形成文档遵循一些规则像

属性,您使用的东西,包含选择[名* =”值”]

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

属性包含字选择器[名〜=”值”]

选择具有与含有给定字,通过空格分隔的值指定的属性的元素。

属性完带选择[名$ =”值”]

选择具有与一个给定的字符串完全结束的值指定的属性的元素。比较是区分大小写的。

欲了解更多信息,请参阅https://api.jquery.com/category/selectors/ 但是在你HTML您应保持id独特。如果您希望多个元素具有相同的ID,请改为使用class

相关问题