1.innerHTML属性和innerText属性
都是对元素的一个操作,简单讲,innerHTML可以在某种特定环境下重构某个元素节点的DOM结构,innerText只能修改文本值
在JavaScript高级程序设计(第三版)是这样描述的:
在只读模式下,innerHTML返回与调用元素的所有子节点(包括元素、注释和文本节点)对应的HTML标记。
这是一个div标签var div = document.getElementsTagName("div")[0];console.log(div.innerHTML); // 这是一个div标签这里又是一个div标签这里又是一个div标签console.log(div.innerText); //这是一个div标签 //这里又是一个div标签
结果显而易见,innerHTML会返回一个带标签的值,innerText只会返回文本值,如果有换行,也会返回换行。
在写入模式下,innerHTML会根据指定的值创建新的DOM树,替换掉调用元素的所有子节点。
这是一个div标签var div = document.getElmentsByTagName('div')[0];div.innerHTML = "我是一个链接";div.innerText= "我是一个链接";//设置innerHTML后div结构变成 //设置innerText后div结构变成 这是的a只是纯文本,在页面上只是文字,并没有渲染成a元素这里又是一个div标签
技巧分享: 当需要添加的innerHTML为DOM结构另一个元素的文本内容时,可以使用下面的操作
this.innerHTML = documen.body.innerHTML.replace(/<.+?>/gim,'');//去掉标签