我有一个名为 common-end
的父 div 类。
我有很多此类的 div,它的外观示例如下:
<div class="item question common-end">
<label>label</label>
<div>
<textarea name="name1" id="text1" class="deep-item form-control input-lg" rows="3"></textarea>
</div>
</div>
并非所有 common-end
div 都具有此结构。可能有多层嵌套。
我唯一确定的事情是,在 common-end
内部的某个地方,会有类 deep-item
的内容(在本例中,它位于文本区域)。
我可以使用什么 jQuery 选择器来查找 common-end
内的 deep-item
某处?
谢谢
最佳答案
正如 RyanW 提到的,最简单的选择器类似于 CSS 选择器:
var $deepItems = $('.common-end .deep-item');
但是,我应该提到,在这种情况下,jQuery 的工作方式是从右到左搜索。所以,如果你有 .deep-item
.common-end
以外的元素中的元素元素(或者只是有很少的 .common-end
元素),你应该给 jQuery 机会来限制它(使它稍微快一些):
var $deepItems = $('.deep-item', '.common-end')
// equivalent to:
var $deepItems = $('.common-end').find('.deep-item')
这允许 jQuery 简单地查找所有 .common-end
首先元素,然后开始在 .deep-item
内搜索(而不是查找所有 .deep-item
并确认它们嵌套在 .common-end
中)。
考虑到您有特定的类需要搜索,这可能不是一个大问题。但是,如果您从一个类开始并捕获一个特定的标签,这可能会成为一个问题。图片如下:
$('.common-end div');
这会捕获每个 <div>
在页面上,然后检查它是否是 .common-end
的后代.
关于jQuery 搜索多个级别的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29663884/