jQuery 搜索多个级别的 child

标签 jquery

我有一个名为 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/

相关文章:

jquery - 使用 "this"选择器仅在一个 div 而不是所有 div 上应用 CSS

javascript - mouseenter/mouseleave 动画链停止

javascript - Jquery:元素上的事件选择器而不是其子元素上的选择器?

jquery - 引导向导 - 转到特定步骤

javascript - 将文本放在跨度下方

javascript - 选择更改时的 PHP HTML JQuery 用 php 值填充文本字段

javascript - 合并两个独立函数的结果?

JavaScript 以错误的顺序执行

jquery - iframe 与 jquery

jquery - 将日期格式从 html 更改为 mysql(最佳实践?)