Javascript替换innerText而不是它的属性

时间:2012-02-28 07:36:32

标签: javascript

如何使用Javascript在文本下方选择性地替换名为Rindan的单词, 但不是如果它在某些属性,如img alt ==“Rindan” 我想替换Rindans这个内部文本而不是属于属性。

`"<a href="http://edition.cnn.com/video/?hpt=hp_t1#/video/bestoftv/2012/02/28/ac-marie-rindan-family-syria.cnn">Rindan's family on her legacy</a> &nbsp;<a href="http://edition.cnn.com/video/?hpt=hp_t1#/video/bestoftv/2012/02/28/ac-marie-Rindan-family-syria.cnn" target=""><img alt="Rindan's family on her legacy" border="0" class="cnnVideoIcon" height="10" src="http://i.cdn.turner.com/cnn/.e/img/3.0/global/icons/video_icon.gif" width="16" /></a>`"

4 个答案:

答案 0 :(得分:1)

将id赋给块,获取innerHTML,并使用替换字符串函数:

var get=document.getElementById('test');
var str=get.innerHTML;
document.write(str.replace("Rindan's","TestNAme"));

将其设置回innerHTML

查看现场演示 http://jsfiddle.net/kunalvashist/CeeDU/

答案 1 :(得分:1)

您可以在replace字符串函数

中使用函数参数
your_string = your_string.replace(<regexp>,  
     function(matched, index){
        // check matched 
        return replacement;
     }); 
}); 

参考:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

答案 2 :(得分:0)

这是替换文本而不是属性:

var aa = document.getElementsByTagName('a');
for(i=0;i<=aa.length;i++)
{
aa[i].innerText = aa[i].innerText.replace("Rindan","anyone");
}
​

答案 3 :(得分:0)

您可以循环body标签的所有子元素,并在innerhtml上执行替换。

for(int i=0;i<document.body.getChildNodes().length;i++){
   var str=document.body.getChildNodes().item(i).innerHTML
   document.body.getChildNodes().item(i).innerHTML=str.replace("","");
}