JS中innerHTML createTextNode innerText outerHTML 区别

本文通过实例讲解了JavaScript中innerHTML、createTextNode、innerText和outerHTML的区别。innerHTML和outerHTML处理的是HTML代码,而createTextNode和innerText处理纯文本。outerHTML使用时需要注意先将元素添加到文档中再追加。
摘要由CSDN通过智能技术生成

话不多说,请看栗子:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
</head>
<body>
<script type="text/javascript">
    //使用createTextNode
    var ele=document.createElement("p");
    var text=document.createTextNode("<b>I love JavaScript<b>");
    ele.appendChild(text);
    document.body.appendChild(ele);
    //使用innerHTML
    var ele2=document.createElement("p");
    document.body.appendChild(ele2);
    ele2.innerHTML="<b>I love JavaScript<b>";

    //使用innerText
    var ele3=document.createElement("p");
    ele3.innerText="<b>I love JavaScript<b>";
    document.body.appendChild(ele3);
    //使用outerHTML
    var ele4=document.createElement("p");
    ele4.setAttribute("id","oh"); //设置id属性
    document.body.appendChild(ele4);//先将该节点添加至body元素中
    oh.outerHTML="<b>I love JavaScript</b>";
</script>
</body>
</html>

最后实现的效果如下(用chrome浏览器/blink内核):

<b>I love JavaScript<b>

I love JavaScript

<b>I love JavaScript<b>

I love JavaScript


很明显:

  • innerHTML和outerHTML会把整段文本作为一行HTML代码处理,
  • 而createTextNode和innerText只会把内容作为一段纯文本处理。
  • 此外outerHTML要对被id调用,所以应该设置好id属性并且要先将元素添加到文档中,再追加outerHTML如果按下面的代码执行则不会显示文字:

//使用outerHTML
var ele4=document.createElement("p");
ele4.outerHTML="<b>I love JavaScript</b>";//未被id调用
document.body.appendChild(ele4);

注意:innerHTML是符合W3C标准的属性,而innerText只适用于IE浏览器,因此,尽可能地去使用innerHTML,而少用innerText。

这里有一个很不错的图帮助理解:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值