区别:innerHTML---innerText---createTextNode--document.write

转载链接:http://www.cnblogs.com/miracle-d/p/6323002.html

innerHTMLinnerText

它们都会把元素内内容替换掉,区别在于:

innerHTML 会把替换内容里的 HTML 标记解释执行。

innerText 会把替换内容里的 HTML 标记原样输出而不执行。

例如有如下代码:

var content = "<b>这是对innerHTML和innerText的测试</b>" ; // 假设 e 为网页内某元素

e.innerHTML = content ; // 显示结果为  这是对innerHTML和innerText的测试

e.innerText = content ; // 显示结果为  <b>这是对innerHTML和innerText的测试</b>

 

innerHTMLcreateTextNode

innerHTML可以识别标签,而createTextNode会将内容全部转化为字符串

例如有如下代码:

var content = "<b>这是对innerHTML和innerText的测试</b>" ; // 假设 e 为网页内某元素

e.innerHTML = content ; // 显示结果为  这是对innerHTML和innerText的测试

var text=createTextNode(content) ;

e.appendChild(text)// 显示结果为  <b>这是对innerHTML和innerText的测试</b>


innerTextcreateTextNode

这样看来innerText和createTextNode的基本用法是一样的,都无法识别标签并转化为html文件。

但是innerText是一次性修改,会将标签里所有内容修改,createTextNode可以逐条插入,避免整体的修改。


innerHTMLdocument.write

链接:https://www.nowcoder.com/questionTerminal/2c5d8105b2694d85b06eff85e871cf50
来源:牛客网

innerHTML则是DOM页面元素的一个属性,代表该元素的html内容。
innerHTML只是修稿Dom元素的内容包含该元素下子元素结构,你可以精确到某一个具体的元素来进行更改。
如果想修改document的内容,则需要修改document.documentElement.innerElement。
在读模式下,innerHTML属性返回与调用元素的所有子节点对应的HTML标记,
在写模式下,innerHTML会根据指定的值创建新的DOM树替换调用元素原先的所有子节点。

document.write()是直接写入到页面的内容流,如果在写之前没有调用document.open, 浏览器会自动调用open。
每次写完关闭之后重新调用该函数,会导致页面被重写。
document.write()在页面中输入内容;如果不指定元素的话;它会覆盖掉整个页面内容。
当文档加载时调用document.write直接向页面输出内容,文档加载结束后调用document.write输出内容会重写整个页面。
通常按照两种的方式使用 write() 方法:
一是在使用该方在文档中输出 HTML,
二是在调用该方法的的窗口之外的窗口、框架中产生新文档(务必使用close关闭文档)。

总之,innerHTML属性比document.write更推荐使用,其原因在于其允许更精确的控制要刷新页面的那一个部分。
innerHTML可以更好的把脚本和HTML分离出来,用不着在body中插入script标签。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值