0

我有一个<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>在元素内部搜索<a>,而不触及其他元素中的其他<td>元素

4

4 回答 4

3

试试这个:

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

也是img自闭标签,而不是:

<img></img>

只需使用:

<img... />

而不是:

onclick='doSomething(control)'

利用:

onclick='doSomething(this)'

所以 jQuery 真的有一个可以使用的控件:)

工作示例

于 2012-07-06T19:25:42.047 回答
2

假设您想找到与<a>您相同的表格单元格中的那个<img>,您不需要使用parent(). 您需要做的就是调用.siblingsTry:

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

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

于 2012-07-06T19:26:21.123 回答
2
$("a.findThisClass", $myControl).first()
于 2012-07-06T19:26:30.877 回答
2

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

$(control).siblings(".findThisClass")
于 2012-07-06T19:26:34.587 回答