2017百度前端技术学院(js任务一)
一、JS中innerHTML、outerHTML、innerText、outerText、value的区别与联系?
在JS中很容易将以上几者记错弄混,在网上找了解释也很抽象,如以下:
innerHTML 设置或获取位于对象起始和结束标签内的 HTML
innerText 设置或获取位于对象起始和结束标签内的文本
outerHTML 设置或获取对象及其内容的HTML形式
outerText 设置(包括标签)或获取(不包括标签)对象的文本
但是!有了示例就可以看的很明显了!
<div id="mydiv">
<span style="color:red">span1</span> span2
</div>
var innerHTML = document.getElementById("mydiv").innerHTML;
var innerText = document.getElementById("mydiv").innerText; //Firefox不支持
var outerHTML = document.getElementById("mydiv").outerHTML;
var outerText = document.getElementById("mydiv").outerText; //Firefox不支持
console.info(innerHTML); //输出<span style="color:red">span1</span> span2
console.info(innerText); //输出span1 span2
console.info(outerHTML); //输出<div id="mydiv"><span style="color:red">span1</span>span2</div>
console.info(outerText); //输出span1 span2
有一点要注意: innerHTML是符合W3C标准的属性,而innerText 对Firefox是不支持的 ,因此,尽可能地去使用innerHTML,
而少用innerText,如果要输出不含HTML标签的内容,可以使用innerHTML取得包含HTML标签的内容后,再用正则表达式去除HTML标签。
哦,对了,还有个value,value就是元素的属性值啊不要多想。
<html>
<head>
<script type="text/JavaScript">
function show(obj){
alert(obj.value);//输出value
}
</script>
</head>
<body>
<div οnclick="showD(this)">innerText</div>
<input type="button" value="value"οnclick="show(this)"></input>
</body>
</html>