本文主要描述的是使用JS实现HTML页面中向任意标签中插入内容,或从任意标签中获取内容,由于不同浏览器对于innerText属性和textContent属性的兼容性不同,因此,为了实现代码可以在不同浏览器上使用,必须实现兼容性代码,经测试,如果该属性在某浏览器上不能使用,则利用该属性获取值的时候,获取的值为undefined。实现代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></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"></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"),"哈哈,我又变帅了");
};
</script>
</body>
</html>
common.js
/**
* 根据id属性的值,返回对应的标签元素
* @param id id属性的值,string类型的
* @returns {Element} 元素对象
*/
function my$(id) {
return document.getElementById(id);
}