2012-02-28 59 views
1

如何使用Javascript有選擇地替換他在下面的文本中稱爲Rindan的單詞, 但不是如果它的某些屬性像img alt ==「Rindan」 我想替換單詞Rindans這是一個內部文本,而不是如果它屬於屬性。Javascript替換innerText而不是它的屬性

`"<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>`" 
+0

我需要用JS解析一個大的HTML內容,並與其他一些數據替換的innerHTML的..但如果是在屬性應該保持不變。進一步我不會使用其他名稱代替,但有<跨度類= 「spellcheck_error」>字。我正在尋找一種像htmlcontent = some string這樣的方法。對此使用htmlparser並僅替換文本換碼。 – Nishant 2012-02-28 07:51:57

+0

輸入 - HTML內容爲文本------>輸出替換的跨度類中的拼寫檢查錯誤字----->(Ofcourse我已經有字與誤差修改陣列]如果單詞在一些屬性。只需要忽略它,只需要替換它的文本 – Nishant 2012-02-28 07:58:35

回答

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/

0
現場演示

這是替換文字而不是屬性:

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

DOM方法對我的幫助不大,我想我需要的是HTML解析和正則表達式的組合 – Nishant 2012-02-28 07:54:10

+0

不,你不需要,正則表達式是不必要的,除非你有更多的單詞或者同一個單詞的實例, [不要用正則表達式解析HTML](http://stackoverflow.com/a/1732454/82548),它不漂亮,或者安全。 – 2012-02-28 08:08:50

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("",""); 
}