用图像替换特定文本不起作用

以下是现有HTML的示例,我无权更改

<a target="new" href="#">KCC&nbsp;26&nbsp;v&nbsp;MIN&nbsp;23</a>

尝试在每个缩写的leu中添加一些NFL图标

所以我尝试了一下以测试在页面上任何地方都可以找到但无法正常工作的KCC文本。有任何想法吗 ?因此,我想保留所有现有的HTML不变,并获取一些团队的缩写名称,并用一个图标代替。在以上HTML中,我将KCC和MIN替换为2张不同的图片。

$("*").filter(function() { return !$(this).children().length; })
      .html(function(index,old) { return old.replace('KCC','<img ... />'); });
wodedark 回答:用图像替换特定文本不起作用

尝试使用此代码https://jsfiddle.net/zn9fy1p6/1/

var aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {
  if (aTags[i].textContent.indexOf("KCC")>=0) {
       aTags[i].textContent = aTags[i].textContent.replace('KCC','<img ... />');
  }
}

如果您想用一个图像替换多个子字符串,用KCC替换KCC,用另一幅图像替换MIN,那么您应该尝试以下https://jsfiddle.net/doteLm39/

var mapObj = { 
  KCC:'<img ... />',//image-1
  MIN:'<img ... />' // image-2
};

var aTags = document.getElementsByTagName("a");
for (var i = 0; i < aTags.length; i++) {       
  aTags[i].textContent = replaceAll(aTags[i].textContent,mapObj);
}

function replaceAll(str,mapObj){
  var re = new RegExp(Object.keys(mapObj).join("|"),"gi");
  return str.replace(re,function(matched){
     return mapObj[matched];
  });
}
本文链接:https://www.f2er.com/3155258.html

大家都在问