jquery得到孩子的孩子

时间:2011-09-25 04:28:27

标签: jquery

好的,这可能有点基础。 HTML是:

<div class="parents-of-all">
<p>
    <a>
        <span class="thechild">Something</span>
    </a>
</p>

jquery是

$('.parents-of-all').click(function(){
    alert($(this).find('span').attr('class'));
});

但不知怎的,它不起作用。在这里测试一下:

http://jsfiddle.net/3zn7e/1/

我的问题是如何遍历跨度?我通常的方式是

$(this).children().children().children().attr('class');

我确信有比这更短的方法,并且使用find()就是其中之一,但我似乎无法使其工作。

非常感谢!

编辑:DUH!显然我忘记了。对于所有DOM父选择器。有时最简单的错误就在你面前。

但是,使用find()和多个孩子()之间有什么区别吗?我发现使用多个子()确保更准确的遍历,因为我们可以添加元素选择器,如果我们想要,但任何其他主要差异?

2 个答案:

答案 0 :(得分:4)

您错过了班级选择器中的点:

$('.parents-of-all').click(function(){
    alert($(this).find('span').attr('class'));
});

http://jsfiddle.net/BoltClock/3zn7e/2

答案 1 :(得分:2)

如果您要更改子项与祖先或子项与父项的属性,则应使用相应的选择器:

例如:

$('.parents-of-all span').addClass('hello');

将类“hello”应用于作为类<span>元素的后代的所有parents-of-all元素。