0

我一遍又一遍地阅读了文档,但我不明白为什么这不起作用:

从函数内部,调用以下内容:

alert($(this).parent().parent().html());

返回如下所示的内容:

<div class="something1">
    <div class="whereThisStarted">stuff</div>
    </div>
<div class="something2">stuff</div>
<div class="somethingSpecial">stuff</div>
<div class="something4">stuff</div>

我想得到“一些特别的东西”。在我看来,以下任何一项都应该有效,但它们都返回 null。

alert($(this).parent().parent().children(".somethingSpecial").html());
alert($(this).parent().parent().filter("div.somethingSpecial").html());

这有什么问题?

谢谢

4

3 回答 3

6

如果你真的必须按照你想要的方式而不是 TStamper 显示的方式来做,试试这个:

alert($(this).parent().parent().find("div.somethingSpecial").html());
于 2009-05-07T20:26:24.683 回答
2

您可能想尝试最接近的功能 - 听起来它更像您正在尝试做的事情:

jquery doc - 最接近()

此代码应该可以工作:

alert($(this).closest(".somethingSpecial").html());

或者如果您的 $(this) 在 'startHere' div 内:

alert($(this).parent().closest(".somethingSpecial").html());
于 2009-05-07T20:29:59.730 回答
0

我不确定为什么 children("div.somethingSpecial") 单独不起作用,但我刚刚意识到这也有效:

alert($(this).parent().parent().children().filter("div.charactersLeft").html());
于 2009-05-07T20:30:51.880 回答