我跟着這個片段http://bytes.com/topic/javascript/answers/504399-get-all-text-nodes防止textnode(JS-HTML)
var xPathResult = document.evaluate(
'.//text()[normalize-space(.) != ""]',
document.body, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
null); for (var i = 0, l = xPathResult.snapshotLength; i < l; i++) {
var textNode = xPathResult.snapshotItem(i);
textNode.data = textNode.data.replace(/somePattern/g, 'replacement');
}
我想替換例如像|12|
與相應的表情一定的模式轉義特殊字符! 但是當我做textNode.data.replace("|12|",'<.img src="favicon.ico"/>');
例如 文戲是..<.img src="favicon.ico"/>..
爲我檢查HTML我發現<.img src="favicon.ico"/>
成爲逃到<img src="favicon.ico"/>
是能夠防止這一點,讓圖像顯示?這裏<.img src="favicon.ico"/>
添加了額外的點目的
這絕對是更好的方法。不要被innerHTML引誘。 – 2010-04-01 15:28:29
不要忘記創建一個循環,它將完成它們,而不僅僅是第一個。 – 2010-04-01 15:30:24
是的,此循環替換單個文本節點中所有出現的字符串;您仍然需要使用XPath或手動樹行走/'getElementsByTagName('*')'children來遍歷所有Text節點。 – bobince 2010-04-01 15:39:00