好的,这可能有点基础。 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'));
});
但不知怎的,它不起作用。在这里测试一下:
我的问题是如何遍历跨度?我通常的方式是
$(this).children().children().children().attr('class');
我确信有比这更短的方法,并且使用find()就是其中之一,但我似乎无法使其工作。
非常感谢!
编辑:DUH!显然我忘记了。对于所有DOM父选择器。有时最简单的错误就在你面前。但是,使用find()和多个孩子()之间有什么区别吗?我发现使用多个子()确保更准确的遍历,因为我们可以添加元素选择器,如果我们想要,但任何其他主要差异?
答案 0 :(得分:4)
您错过了班级选择器中的点:
$('.parents-of-all').click(function(){
alert($(this).find('span').attr('class'));
});
答案 1 :(得分:2)
如果您要更改子项与祖先或子项与父项的属性,则应使用相应的选择器:
例如:
$('.parents-of-all span').addClass('hello');
将类“hello”应用于作为类<span>
元素的后代的所有parents-of-all
元素。