我有以下功能标签特定的字符串替换
function replacer(oldstring, newstring) { document.body.innerHTML = document.body.innerHTML.replace(oldstring, newstring); }
我希望能够如果不是内部更换任何文本以下标记
<a id="word">some text</a>
或< >字符之间。
请你可以告诉我,如果有老字符串在里面的时候跳过a标记或< >之间的字符。
预先感谢您!
我有以下功能标签特定的字符串替换
function replacer(oldstring, newstring) { document.body.innerHTML = document.body.innerHTML.replace(oldstring, newstring); }
我希望能够如果不是内部更换任何文本以下标记
<a id="word">some text</a>
或< >字符之间。
请你可以告诉我,如果有老字符串在里面的时候跳过a标记或< >之间的字符。
预先感谢您!
我认为有以下应该做的伎俩:
function replacer(oldstring, newstring) {
var regExp = new RegExp("(<[^<>]+>)" + oldstring + "(</[^<>]+>)", "g");
document.body.innerHTML = document.body.innerHTML.replace(regExp, "$1" + newstring + "$2");
}
这是从来没有更换身体的innerHTML一个很好的方法,它导致整个页面,这可能不受欢迎的影响进行重新绘制的。
您可以搜索页面的字符串:
如果发现任何,确定,如果父元素节点范围(或者他的祖先之一,如果需要的话)是排除的范围。如果不是,请替换文字。
不幸的是上述两种方法都不适用于歌剧。
对不起,但这是行不通的! – testere 2011-06-17 09:23:24
这是因为我忘了将新字符串分配给主体:) 它现在应该工作... – Ofir 2011-06-17 15:45:31