Javascript 当需要匹配多个元素时,是否可以替代$(“id.class”)语法?

Javascript 当需要匹配多个元素时,是否可以替代$(“id.class”)语法?,javascript,jquery,Javascript,Jquery,当我写下如下内容时: $("#id .class").css("display", "none"); PhpStorm给了我一个警告,说jQuery使用效率低下。 关于这一点,我在这里读了几个问题,其中提到使用.find()方法可以显著加快速度 因此,我尽职尽责地检查了我所有的代码,并更改了如下行: $("#id .class").css("display", "none"); 为此: $("#id").find(".class").css("display", "none"); 不幸的是

当我写下如下内容时:

$("#id .class").css("display", "none");
PhpStorm给了我一个警告,说jQuery使用效率低下。

关于这一点,我在这里读了几个问题,其中提到使用
.find()
方法可以显著加快速度

因此,我尽职尽责地检查了我所有的代码,并更改了如下行:

$("#id .class").css("display", "none");
为此:

$("#id").find(".class").css("display", "none");
不幸的是,这似乎只将链接函数(在本例中为
.css()
)应用于页面上的第一个匹配元素。因此,当有多个
.class
元素需要隐藏时,新代码只会隐藏第一个元素


我是应该恢复到以前的方式,还是有一种更有效的方法可以处理多个元素?

您的DOM中有多个重复的ID,这是一个需要解决的不同问题
$(“#id”)
只会找到
#id
的第一个实例,而
#id.class
,因为CSS选择器是自下而上工作的,所以它会找到
.class
的所有父级为
#id
的实例,因此它会找到页面上您期望的所有实例。ID应该是唯一的,所以要么修复该问题,要么恢复选择器。

检查代码。您对
.find()
的理解不准确。。检查这个问题:您的DOM中有多个重复的ID,这是另一个您应该解决的问题
$(“#id”)
只会找到
#id
的第一个实例,而
#id.class
,因为CSS选择器是自下而上工作的,所以它会找到
.class
的所有父级为
#id
的实例,因此它会找到页面上您期望的所有实例。ID应该是唯一的,所以要么修复该问题,要么恢复选择器@karthikr——复制顶部节点,您将能够复制OPissue@zyklus复制顶部节点是什么意思?ID在文档中应该是唯一的。@karthikr-是的,我知道,但OPs的实际问题是重复的IDs@zyklus你说得对,我在页面上注意到了相同ID的输出容器上的问题。这就是问题所在。