js innerText、textContent、innerHTML的区别和各自用法

//自定义函数
  function my$(id) {
    return document.getElementById(id);
}
  //点击按钮设置div中的文本内容
  my$("btn").onclick = function () {
    //设置标签中间的文本内容,应该使用textContent属性
    my$("dv").innerText = "啊,这是div";
    /* my$("dv").textContent="this is div标签"; */
    
    //获取标签中间的文本内容
    console.log(my$("dv").innerText);
    /* console.log(my$("dv").textContent); */
 };
 
设置标签中的文本内容,应该使用textContent属性,谷歌,火狐支持,IE8不支持
设置标签中的文本内容,应该使用innerText属性,谷歌,火狐,IE8都支持
  如果这个属性在浏览器中不支持,那么这个属性的类型是undefined
  判断这个属性的类型 是不是undefined,就知道浏览器是否支持
//兼容代码
  //设置任意的标签中间的任意文本内容
  function setInnerText(element,text) {
    //判断浏览器是否支持这个属性
    if(typeof element.textContent =="undefined"){//不支持
      element.innerText=text;
    }else{//支持这个属性
      element.textContent=text;
    }
  }

  //获取任意标签中间的文本内容
  function getInnerText(element) {
    if(typeof element.textContent=="undefined"){
     return element.innerText;
    }else{
      return element.textContent;
    }
  }

 

 
总结:
  如果使用innerText主要是设置文本的,设置标签内容,是没有标签的效果的
  总结:innerHTML是可以设置文本内容
  总结:innerHTML主要的作用是在标签中设置新的html标签内容,是有标签效果的

总结:
  想要设置标签内容,使用innerHTML,支持设置HTML的标签
  想要设置文本内容,innerText或者textContent,或者innerHTML,推荐用innerHTML
 
  获取的时候:
     innerText可以获取标签中间的文本内容,但是标签中如果还有标签,那么最里面的标签的文本内容也能获取.---获取不到标签的,文本可以获取
     innerHTML才是真正的获取标签中间的所有内容 ,如果想要(获取)标签及内容,使用innerHTML 

 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>$永远的24k纯帅$</title>
  <style>
    div {
      width: 200px;
      height: 150px;
      border: 2px solid red;
    }
  </style>
</head>
<body>

<input type="button" value="设置值" id="btn"/>
<div id="dv">哦,太神奇了</div>

<script src="common.js">
function my$(id) {
    return document.getElementById(id);
}
</script>
<script>
 /* 设置标签中的文本内容,应该使用textContent属性,谷歌,火狐支持,IE8不支持
 设置标签中的文本内容,应该使用innerText属性,谷歌,火狐,IE8都支持

 如果这个属性在浏览器中不支持,那么这个属性的类型是undefined
 判断这个属性的类型 是不是undefined,就知道浏览器是否支持 */

  //兼容代码
  //设置任意的标签中间的任意文本内容
  function setInnerText(element,text) {
    //判断浏览器是否支持这个属性
    if(typeof element.textContent =="undefined"){//不支持
      element.innerText=text;
    }else{//支持这个属性
      element.textContent=text;
    }
  }

  //获取任意标签中间的文本内容
  function getInnerText(element) {
    if(typeof element.textContent=="undefined"){
     return element.innerText;
    }else{
      return element.textContent;
    }
  }

  //测试

  my$("btn").onclick=function () {
    console.log(getInnerText(my$("dv")));
    /* setInnerText(my$("dv"),"哈哈,我又变帅了"); */
  };



//自定义函数
  function my$(id) {
    return document.getElementById(id);
}
  //点击按钮设置div中的文本内容
  my$("btn").onclick = function () {
    //设置标签中间的文本内容,应该使用textContent属性
    my$("dv").innerText = "啊,这是div";
    /* my$("dv").textContent="this is div标签"; */
    
    //获取标签中间的文本内容
    console.log(my$("dv").innerText);
    /* console.log(my$("dv").textContent); */
 };

</script>
</body>
</html>

 

posted @ 2019-03-15 14:51  py-小白  阅读(2848)  评论(0编辑  收藏  举报