javascript - 这个 jQuery 选择是什么意思?为什么我们在 filter() 中使用 "this"?

标签 javascript jquery

我以这种方式使用 filter() 但它不起作用:

$("p").filter(function(){  
    return $("span").length == 2;}).css("background-color", "yellow");});

如果我在 "span" 旁边添加 this 问题就解决了。我不知道用 , 分隔成一个 $ 的 2 个元素的原因是什么,它有什么含义。实际上,到目前为止我还没有看到 2 个参数一起进入 $ 。请告诉我什么时候以及为什么我必须在这个例子中使用 this

$("p").filter(function(){  
    return $("span", this).length == 2;}).css("background-color", "yellow");});

最佳答案

第二个参数是上下文,这意味着您的选择器将尝试在上下文中找到 spanthis 指的是 p在你的情况下本身,所以所有匹配的跨度都将在 p 上下文中。

从代码看来,您在整个文档(全局上下文)中有超过 2 个跨度,所以当您使用时:

$("span").length 在全局上下文中大于 2。

但是在 p 的上下文中,当使用 $("span", this) 时,您发现了 2 个子 span。

关于javascript - 这个 jQuery 选择是什么意思?为什么我们在 filter() 中使用 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42242745/

相关文章:

javascript - 防止javascript访问不存在的数组

javascript - findOneAndUpdate mongodb 推送到现有数组

javascript - 三.js线宽矛盾

javascript - 将 Popup 添加到 Phaser 游戏

jquery - 对由 Json 数组填充的 JQuery 列表进行排序

javascript - 如何重新加载javascript而不是页面

javascript - 为什么动画在长时间持续时会出现抖动/断断续续的情况?

jquery - 在带有图标 : no space between the icon and text? 的 Jquery 按钮中

jQuery 显示/隐藏基于另一个下拉选项的下拉选项

javascript - 倒数计时器,setDate 有问题