2014-08-29 60 views
0

如何使用jQuery查找在某个类中具有特定文本并将img src替换的td?下面是HTML如果具有类特定字,请替换img src for td img

<td> 
<img src="REPLACE IMG SOURCE WITH NEW IMAGE" class="headshot"></img> 
<a href="#" class="position_def">Rams, St. Louis STL Def</a> 
</td> 

<td> 
<img src="REPLACE IMG SOURCE WITH NEW IMAGE" class="headshot"> 
<a href="#" class="position_def">Bengals, Cincinnati CIN Def</a> 
</td> 

我想找到TD上,发现在一类文本“公羊”和更换将新的IMG,也发现“猛虎队”,取而代之的是IMG SRC太但不同的另一图像,然后将一个“公羊”

我试过,但它具有图像

(function($) { 
    var name = 'Rams'; 
    $('#divID').find('td').filter(function() { return $(this).text() == name; }).html('<img src="MY NEW IMG" "class="detailsimg"/>'); 
})(jQuery); 
+0

哪部分你不知道该怎么办?你有尝试过什么吗?另外,它看起来像你想在一个元素中找到文本,而不是在一个类中,对吗? – 2014-08-29 17:25:13

+0

我可以找到td,但我的尝试正在替换整个td,而不仅仅是图像src – MShack 2014-08-29 17:30:54

回答

2

你的代码发现td与文本替换整个TD,但你使用.html(),这适用于找到的td。一旦你找到了td,要过滤的img标签,然后更改src属性:

var name = 'Rams'; 
$('#divID').find('td').filter(function() { 
    return $(this).text().match(name); 
}).children('img').attr('src', "MY NEW IMG"); 

注意,在使用==一般不会工作,因为这样的事实:text()返回所有的td标记中的空白区域。 .match(),或其他匹配/正则表达式函数将更加可靠地工作。

演示:http://jsfiddle.net/jtbowden/1crbvr59/

+0

我没有看到每个类的具体文本在这里?而且由于img标签不会包装标签,这甚至会起作用吗? – MShack 2014-08-29 17:37:43

+0

对不起,错字,我的意思是'img'不是'a'。请参阅编辑。 – 2014-08-29 17:41:28

+0

我设置了jsfiddle并且不能正常工作http://jsfiddle.net/nbxa0L2a/1/ – MShack 2014-08-29 17:49:05