jQuery中的this.concat选择器是什么意思?

5
例如,考虑以下这段HTML代码:
<div>
    <p>p0</p>
    <p>p1</p>
    <p>p2</p>
</div>

我不明白如何编写连接的jQuery this选择器,就像这样:
$("div").on("mouseover", function () {
    $(this + " p").css({
        color: "#009"
    });
}); 

这个怎么写才是正确的语法?

1
像这样:$(this).find("p").css(... - I Hate Lazy
2
我认为你要找的只是 $('p', this) - Selvakumar Arumugam
3个回答

17

要在另一个元素中查找元素,请使用上下文选择器。尝试这样做:

$("p", this).css({ /* ... */ });

或者您可以连接父元素的id,尽管我认为这样有点丑陋:

$("#" + this.id + " p").css({ /* ... */ });

或者您可以在父元素上使用find()方法:

$(this).find("p").css({ /* ... */ });

上述任何一个都可以使用,尽管第二个示例相当丑陋,应该避免使用。在可能的情况下,始终直接使用this 引用。


6
jQuery选择器带有一个可选的第二个参数,称为“选择器上下文”。来自jQuery文档
默认情况下,选择器在DOM中从文档根开始执行搜索。但是,可以通过使用$()函数的可选第二个参数来给出搜索的替代上下文...在内部,选择器上下文是使用.find()方法实现的,因此$('span', this)等同于$(this).find('span')答案:您需要将$(this+" p")替换为$("p", this)或等价的(但更冗长的)$(this).find("p")。这将限制您的选择范围仅包括作为this所包含的元素的后代元素的<p>

3
我认为您正在寻找$('p', this),它基本上返回this上下文中的所有p标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接