$(“#id”)和$(“”)之间的区别

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

请注意,我已经遇到一个有类似问题但不回答我的查询的post

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

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

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

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

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

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

属性结束于选择器[name $ =“value”]

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

等等

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