我不确定为什么会发生这种情况,我列出了代码工作的两种方式,而另一种方法则没有。 如果这是可能的话,我希望得到每个内部的值,如果这是可能的,那么我可以改变该值,但我可以从外面选择它们为所有IMG做一个,这使我放松了与之相关的TD的参考IMG。
http://jsfiddle.net/4w8030th/1/
// Cannot retrieve SRC inside IMG tag
$.each($('tr.infraTrClara'), function () {
// Post-It
var postit = $(this).children('td:nth-child(2)').select('img');
postit_src = $(postit).attr('src');
alert(postit_src);
});
// Can retrieve SRC inside IMG tag
$.each($('tr.infraTrClara td:nth-child(2) img'), function () {
// Post-It
var postit = $(this).attr('src');
alert(postit);
});
答案 0 :(得分:3)
.select()
是一种事件侦听器绑定方法,类似于.click()
。您可能希望.children()
在那里实现相同的行为。
答案 1 :(得分:2)
此案例的合适方法是.find()
,而不是.children()
或.select()
。
然后,由于它将是一个多重结果,而不是将其设置为变量,也可以对其执行.each()
:
http://jsfiddle.net/4w8030th/3/
$.each($('tr.infraTrClara'), function () {
// Post-It
$(this).find('td:nth-child(2)').find('img').each(function() {
postit_src = $(this).attr('src');
alert(postit_src);
});
});
修改强>
凯文在评论中提出了一个很好的观点。我假设您需要一个不同于您发布的第二个代码(正在运行)的解决方案,原因是另一个原因......但是,你提到过你不想
丢失与该IMG关联的道明的参考资料。
因此,如果您只想操纵td
,请使用您的第二个代码并使用parent()
调用它:
$.each($('tr.infraTrClara td:nth-child(2) img'), function () {
// Post-It
var postit = $(this).attr('src');
alert(postit);
var td = $(this).parent(); //HERE!!!
});