发布
社区首页 >问答首页 >从">“开始的选择器是否是在jQuery中找到孩子的正确方法?

从">“开始的选择器是否是在jQuery中找到孩子的正确方法?
EN

Stack Overflow用户
提问于 2015-04-02 07:11:58
回答 2查看 47关注 0票数 0

我想找出特定子代的特定元素。我可以这么做:

代码语言:javascript
代码运行次数:0
复制
$(element).children('.second').find('.third')

显然,这也同样有效:

代码语言:javascript
代码运行次数:0
复制
$(element).find('> .second .third')

我更喜欢后者,但我找不到选择器的文档, '>‘>符号开始.这份文件什么也没说。我的问题是:使用第二个安全吗?它是jQuery API的一部分吗?

EN

回答 2

Stack Overflow用户

发布于 2015-04-02 07:23:18

希望找到元素的特定子元素的特定后代。

选择器称为直接子选择器。你需要使用:

代码语言:javascript
代码运行次数:0
复制
                 //vv SPECIFIC CHILDREN
$(element).find('.second > .third');
                         //^^DESCENDANTS
票数 0
EN

Stack Overflow用户

发布于 2015-04-02 07:45:59

是的,它们是等价的。基本上是$(element).children('.myclass') == $(element).('> .myclass') == $(document).find(element > .myclass)

当您在jQuery选择器中使用一个空格时,您的意思是匹配后代。

因此,$(element).find('> .second .third')的意思是“在属于类third的元素中(在任何级别上)查找属于类second的元素,这些元素是元素的直接子元素。

$(element).children('.second').find('.third')的意思是一样的。

看看这个结构

代码语言:javascript
代码运行次数:0
复制
<div id="parent">
    <div class="second"></div>
    <div class="second">
        <div class="third"></div>
        <div class="third"></div>
        <div class="placeholder">
            <div class="third"></div>
            <div class="second">
                <div class="third"></div>
            </div>
        </div>
    </div>
</div>

不同选择器的结果如下:

代码语言:javascript
代码运行次数:0
复制
$(document).ready(function () {
    //Direct children (second)
    console.log("0: " + $('#parent').find('> .second').length) // 2
    //All children (second) + All children (third)
    console.log("1: " + $('#parent').children('.second').find('.third').length) // 4
    console.log("2: " + $('#parent').find('> .second .third').length) // 4
    //All children (second) + direct children (third)
    console.log("3: " + $('#parent').children('.second').find('> .third').length) // 2
    //Direct children (second) + direct children (third)
    console.log("3: " + $('#parent').find('> .second > .third').length) // 2
});

示例:http://jsfiddle.net/h3s454bq/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29407080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档