给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,想怎么改怎么改

posted @ 2013-11-27 12:26  ruiruige1991  阅读(3095)  评论(0编辑  收藏  举报