我有<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>
中的其他元素
答案 0 :(得分:3)
请改为尝试:
var $newControl = $(control).closest('.myTDClass').find(".findThisClass");
alert($newControl.text());
同样img
是自闭标签,而不是:
<img></img>
只需使用:
<img... />
而不是:
onclick='doSomething(control)'
使用:
onclick='doSomething(this)'
这样jQuery确实可以使用控件:)
答案 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")