innerHTML、outerHTML、innerText、outerText、textContent

it2026-09-01  6

(一)标题写的这四个属性最常用的就属innerHTML了,它给我们带来了很多方便,但是要尽量避免过度使用。

 ①在读的模式下,innerHTML可以返回调用这个属性的元素的所有子节点。不同浏览器返回的格式不太一样,                    有的浏览器忽略缩进。高程中说IE和Opera会把标签转为大写,经过测试,并未发现这种现象,除了IE5的Quirks下; ②在写的模式下,写入的会替换掉原有的所有子元素,如果写入标签则会解析成HTML元素。innerHTML的局限性出现在写入<script>与<style>时。(并不是所有元素都支持innerHTML) (二)outerHTML这个元素就有点少用了,它和innerHTML一样被纳入标准,各个浏览器也得到不错的支持。   这个属性在写入时会把整个元素和他的后代都替换。 例1:<div id="doc">           <p>hello!I am yomtaaa!</p>         </div>      alert(oDiv.outerHTML); //会把调用的元素和它调用的子节点都一并弹出,这也是和innerHTML的区别 关于我认为它少被采用的原因:      ①作用点不明确,对一个初学者来说,如果他不知道这个属性会把调用的元素也弹出,则会发生什么。。。      ②性能没innerHTML好,执行时间几乎快接近innerHTML的两倍      ③太麻烦,为什么呢?(看下面的例子) 例2:<div id="doc">

          <p>hello!I am yomtaaa!</p>        </div>

          oDiv.outerHTML='<a href="#"></a>';  //会整个把div替换掉 那这个div是不是不存在了 即使他不会报错 但逻辑上还是冲突的,那么获取这个id的API已经是null了,所以innerHTML相对省事很多。 (三)没有纳入规范的innerText 这个属性得不到FF的支持,但有时却可能比innerHTML更好用。 ①在读的模式下,返回后代的所以文本节点,按照顺序读取然后连接起来 ②在写的模式下,会把调用这个属性的元素的后代节点都清除,然后插入文本。 它只会生成一个文本节点,为了确保能只生成一个节点,它会把html标签都过滤掉,所以在写入时html标签是无效的。 (四)textContent(低版本浏览器不支持) 这是一个类似innerText的属性,和innerText出入不大,因为他的存在可以解决FF不支持innerText的问题。 textContent同样会过滤掉标签,我所说的过滤掉标签是指html标签无效(以文本方式显示)。 它的返回值以innerText一样,除了缩进。 (五)outerText(兼容性和innerText差不多) outerText同样也是不能得到FF的支持,在读取时,返回的与innerText的结果一样。 在写入时,他却会把调用的元素也一并去除。

转载于:https://www.cnblogs.com/yomtaaa/p/4417732.html

相关资源:数据结构—成绩单生成器
最新回复(0)