如何在DIV中选择具有类的项目?


Answers:


285

尝试:

$('#mydiv').find('.myclass');

JS Fiddle演示

要么:

$('.myclass','#mydiv');

JS Fiddle演示

要么:

$('#mydiv .myclass');

JS Fiddle演示

参考文献:


很高兴从find()文档中学习:

.find()和.children()方法类似,不同之处在于后者仅沿DOM树向下移动一个级别。


2
第二个两个将不起作用,但是可以。后两个将选择我认为的每个class = myclass,然后选择每个id = mydiv。
czupe 2012年

2
@czupe:否,尽管上下文选择器方法是用不同的jQuery实现的,但内部实现的$('#mydiv').find('.myclass');方法与第一个代码段中使用的方法相同。顺便说一句:“ ...选择每个id=mydiv”?有只应该永远是一个利用给定id的页面(一个id 必须是文档中唯一)。
大卫说恢复莫妮卡

@DavidThomas好吧,我刚刚尝试了$('#mydiv .myclass'); 最终选择了所有具有类myclass的div,而不仅仅是mydiv中的div。
user3281466 2014年

@ user3281466:真的吗?这似乎不太可能,您能否重现您的问题
大卫说恢复莫妮卡2014年

如何在div中检查是否有任何内容,然后将其放入:not()
SuperUberDuper

20

试试这个

$("#mydiv div.myclass")

或者,如果您不在乎它是否是div(或始终会是div),则可以简化为$(“#mydiv .myclass”)。
Michael Mior

@Michael-是的,我们只能说.mycalss,但是如果我们知道它是一个div,则div.myclass可以使搜索更快。
ShankarSangoli 2011年

@Shankar,它很可能不会使它变快,而是变慢。假设jquery使用sizzle而不是本机,document.queryselectorall它可能会以相同的方式进行搜索,并且在您的情况下执行额外的检查。本机实现可能执行相同的操作。
2011年

我进行的一些快速测试表明,这取决于浏览器。在Chrome中,显示速度略快,在FF中显示速度稍慢。无论哪种方式,除非您多次运行此选择器或在大量元素上运行,否则差异可以忽略不计。请参阅此处查看我的粗略(可能还有缺陷)测试。
Michael Mior

@Michael-如果我们将标记名与类名一起指定,它将首先使用getElementsByTagName,然后查找绝对更快的类名,并且仍使用本机方法进行第一级排序。总之,如果没有太多元素要选择,则可以忽略不计。
ShankarSangoli 2011年

11

您将以与应用CSS选择器相同的方式进行操作。暂时可以做

$("#mydiv > .myclass")

要么

$("#mydiv .myclass")

最后一个将匹配myDiv中的每个myclass,包括myclass中的myclass。


6

如果要选择具有类属性“ myclass”的每个元素,请使用

$('#mydiv .myclass');

如果只想选择具有类属性“ myclass”的div元素,请使用

$("div#mydiv div.myclass");

查找有关jquery选择器的更多信息,请参阅以下文章


1

试试这个吧$(".video-divs.focused")。如果您正在寻找重点的视频div,这将起作用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.