Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果td img具有特定于类的单词,则将img src替换为td img_Jquery - Fatal编程技术网

Jquery 如果td img具有特定于类的单词,则将img src替换为td img

Jquery 如果td img具有特定于类的单词,则将img src替换为td img,jquery,Jquery,如何使用jQuery查找在a类中具有特定文本并替换img src的td?这是HTML <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="RE

如何使用jQuery查找在a类中具有特定文本并替换img src的td?这是HTML

<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 a,在a类中找到“Rams”的文本,并将其替换为新的img,同时找到“Bengals”,并用另一个不同于“Rams”的图像替换该img src

我尝试过这个,但它用一个图像替换了整个TD

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

您的代码找到带有文本的
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()
,或其他匹配的/regex函数将更可靠地工作


演示:

你不知道怎么做哪部分?你试过什么吗?另外,看起来你想在元素中查找文本,而不是在类中,对吗?我可以找到td,但我的尝试是替换整个td,而不仅仅是图像。我看不出每个a类的特定文本在这里的位置?既然img标签不包装a标签,这会起作用吗?你的HTML是不合法的。如果没有
表和
tr
s,就不能有
td
s。另外,使用
==
将不起作用,因为
.text()
将返回整个
td
中的所有空白,因此它与您的字符串不匹配。您想使用
.match()
。演示:我将
.text()
的内容打印到控制台,这样您就可以看到它有很多额外的空白。