将jquery中的$(this)选择器与另一个嵌套选择器一起使用

Using $(this) selector in jquery with another nested selector

本文关键字:选择器 另一个 嵌套 一起 中的 jquery this      更新时间:2023-09-26

使用$(this)时,指定嵌套选择器的最佳方式是什么?

在本例中:

$('.example').each(function() {
    var url = $(this).attr('href');
});

url将返回undefined,因为它将首先期望一个'a'选择器。所以理想情况下,我想说:

var url = $(this, 'a').attr('href');

但这不起作用,以下按预期工作,但看起来不太整洁:

$('.example').each(function() {
    var link = $(this).find('a');
    var url = $(link).attr('href');
});

那么如何正确地将$(this)'a'一起使用呢?


注意:我知道以下内容会起作用,但不是为了我的问题。

 $('.example > a').each(function() {
     var url = $(this).attr('href');
 });

使用:

$(this).find('a').attr('href');

(这应该是一个注释,但我需要更多的代码空间)

当你说

它预计首先会有一个"a"选择器

你说"它"到底是什么意思?那里没有什么"期望"任何东西。任何元素(理论上)都可以具有href属性。

另外,你的HTML看起来怎么样?如果是

<a class="example" href="#">...</a>

那么只有你的第一个例子有效,其他的都不行。你的其他例子都期待

<div class="example"><a href="#">...</a></div>

这反过来又不适用于第一示例。

到底是什么问题?如果$(this).attr("href")返回undefined,那么您可以很容易地进行检查。你能给出一个具体的用例吗?