Javascript:replace';g';性格
我想替换以下innerHTML div中的Javascript:replace';g';性格,javascript,replace,Javascript,Replace,我想替换以下innerHTML div中的g字符: <div id="myDiv">aaa>aga</div> 不幸的是,这也将字符替换为&at 如何避免这种行为?尝试使用.innerText而不是.innerHTML,就像这样 var myDiv=document.getElementById('myDiv'); var text=myDiv.innerText | | myDiv.textContent | |“”; myDiv.innerHTML=text
g
字符:
<div id="myDiv">aaa>aga</div>
不幸的是,这也将
字符替换为&at代码>
如何避免这种行为?尝试使用.innerText
而不是.innerHTML
,就像这样
var myDiv=document.getElementById('myDiv');
var text=myDiv.innerText | | myDiv.textContent | |“”;
myDiv.innerHTML=text.replace(/g/g,'a');
//或者没有变量
//myDiv.innerHTML=(myDiv.innerText | | myDiv.textContent | | |')。替换(/g/g,'a')代码>
aaa>aga
如果您希望更加安全(在处理包含其他元素的元素时,或处理不希望被解释为HTML的文本时),您将希望遍历元素的子元素以查找其中的文本节点
文本节点内的简单替换将满足您的需要:
函数替换(el、图案、替换){
如果(el.nodeType==3){//TEXT\u节点
el.nodeValue=el.nodeValue.replace(模式,替换);
}
否则{
var n=el.childNodes.length;
对于(变量i=0;i
一个
两个
一、二、三、四、二、三、四
您可以使用.innerText,比如so@Alexander,这样在回答部分看起来会更好。myDiv.innerHTML.replace(/[^&g]g/g,'a')
var myDiv = document.getElementById('myDiv');
myDiv.innerHTML = myDiv.innerHTML.replace('g','a');