帮助理解jQuery选择器示例

帮助理解jQuery选择器示例,jquery,jquery-selectors,Jquery,Jquery Selectors,以下代码取自jQuery插件演示。我不明白第2行的选择器中发生了什么。它似乎在选择p元素,但逗号后面的第二个参数是什么 jQuery: var demos = $("div.wrapper div.demos"); $(".uncontrolled-interval p", demos).everyTime(1000,function(i) { $(this).html(i); }); <d

以下代码取自jQuery插件演示。我不明白第2行的选择器中发生了什么。它似乎在选择p元素,但逗号后面的第二个参数是什么

jQuery:

var demos = $("div.wrapper div.demos");             
$(".uncontrolled-interval p", demos).everyTime(1000,function(i) {
                    $(this).html(i);
                });
<div class="wrapper"> 
    <div class="demos">         
        <div class="uncontrolled-interval"> 
            <p>I am transient... *sigh*</p> 
        </div>      
    </div> 
</div>
HTML:

var demos = $("div.wrapper div.demos");             
$(".uncontrolled-interval p", demos).everyTime(1000,function(i) {
                    $(this).html(i);
                });
<div class="wrapper"> 
    <div class="demos">         
        <div class="uncontrolled-interval"> 
            <p>I am transient... *sigh*</p> 
        </div>      
    </div> 
</div>

我是短暂的*叹息*


谢谢它指定了搜索的上下文。基本上是一个过滤器

因此在本例中,它在
demos
元素中搜索
.uncontrolled interval p
。如果您有此标记,它仍然只会选择
demos
中的标记

<div class="wrapper">          
    <div class="uncontrolled-interval"> 
        <p>I am transient... *sigh*</p> //Will not select
    </div>     
    <div class="demos">         
        <div class="uncontrolled-interval"> 
            <p>I am transient... *sigh*</p> //Will select
        </div>      
    </div> 
</div>

我是短暂的*叹息*

//将不会选择 我是短暂的*叹息*

//将选择
当使用jQuery使用
jQuery
函数(或其别名
$
)选择元素时,您可以提供上下文以及所述的选择器

这意味着:在给定的上下文中选择与提供的CSS选择器匹配的每个元素,其中上下文表示您已经选择的DOM区域


换句话说,它说:使用上下文作为要搜索的DOM树的根,而不是文档根。

除了其他答案之外,上下文的工作原理如下:

在内部,选择器上下文是 使用.find()方法实现, 所以$('span',这个)相当于 $(this.find('span')


就个人而言,我更喜欢编写
demos.find(“.uncontrolled interval p”)
而不是
$(“.uncontrolled interval p”,demos)

@Dancrumb-感谢您的详细解释