找到控件的parent(),然后找到(“a”)JQuery

时间:2012-07-06 19:21:35

标签: javascript jquery

我有<td>看起来像这样:

<td class="myTDClass">
    <span class="spanClass">Header</span>
    <br />
    <img class='myImages' style='cursor: hand;' onclick='doSomething(control)' alt='this is my alt Text'></img>
    <br />
    <span style="color: #123456;">More Text</span>
    <br />
    <a class='findThisClass'>Insert Alt Text Here</a>
</td>

这会调用一些jQuery代码,将alt标记设置为一些新文本。然后,我希望它将<a>元素设置为一些新文本。这是jQuery代码:

doSomething = function(control)
  {
    var $myControl = $(control);
    $myControl.attr("alt", "This is the new Alt Text!");

    var $newControl = $(control).parent().siblings().find(".findThisClass").first();
    alert($newControl.find("a").text());
  });

jQuery代码设置了alt标签,但找不到<a class=findThisClass />

我认为我使用了.parent().siblings()错误。谁能找到我的错误?这里的想法是我可以在<td>内搜索{{1>} ,而不是触及其他<a>中的其他元素

4 个答案:

答案 0 :(得分:3)

请改为尝试:

var $newControl = $(control).closest('.myTDClass').find(".findThisClass");
alert($newControl.text());

同样img是自闭标签,而不是:

<img></img>

只需使用:

<img... />

而不是:

onclick='doSomething(control)'

使用:

onclick='doSomething(this)'

这样jQuery确实可以使用控件:)

Working Example

答案 1 :(得分:2)

假设您要查找与<a>位于同一表格单元格中的<img>,则无需使用parent()。您需要做的只是致电.siblings尝试:

var $newControl = $(control).siblings('a.findThisClass').first();

这假定control指向表格单元格中的图像。

答案 2 :(得分:2)

$("a.findThisClass", $myControl).first()

答案 3 :(得分:2)

a是图像的兄弟,所以,简单地说:

$(control).siblings(".findThisClass")