给innerText赋值的问题
innerHTML我就不说了 这个就是你在开发工具里看到的内容
如果你给一个元素的innerText赋值,这个元素还有子元素,那么子元素也会被抹去,这样会导致js错误,在你下次对子元素引用的时候,NULL指针出现
举个栗子
1 <div id="ruiruige"> 2 这里是文字<label id="sub_label">label是子元素</label> 3 </div>
如果你想把div里的文字改成别的,那么有可能你用的是
$('ruiruige').innerText='这里是新的DIV文字';
如果这样的话,里面的<label>就没了
执行“ $('ruiruige').innerText='这里是新的DIV文字'; ”之前,
alert($('ruiruige').innerText) 的结果是:这里是文字label是子元素
alert($('ruiruige').innerHTML)的结果是: 这里是文字<label id="sub_label">label是子元素</label>
执行之后:
alert($('ruiruige').innerText) 的结果是:这里是新的DIV文字
alert($('ruiruige').innerHTML) 的结果是:这里是新的DIV文字
可见,label被吞了,那么如果你之后对 id="sub_label"进行引用,空指针出错是可以理解的
解决方法:1.innerHTML 提取出来之后,在js里进行字符串操作,或者正则表达式来进行修改而不是赋值(覆盖) innerText能不能成功返回我还没试过
2.对你要改的地方加一个子div,引用子DIV的ID,想怎么改怎么改