DOM2

113 阅读2分钟

1、元素的内容

1、*elem.innerHTML:获取或者设置开始标签到结束标签之间的HTML代码,没有兼容性问题,可以识别标签
	获取:elem.innerHTML
	设置:elem.innerHTML="新内容"

2、elem.textContent:获取或者设置开始标签到结束标签之间的纯文本,但是有兼容性问题,不可以识别标签
	获取:elem.textContent
	设置:elem.textContent="新文本"
	特殊:老IE才叫elem.innerText;//第一见到小三上位,反而所有的主流浏览器来将就了老IE

3、*input.value:获取或设置单标签(input)的内容准备的
	获取:input.value
	设置:input.value="新值"

2、元素的属性:

1、*获取属性值:
	核心DOMelem.getAttribute("属性名")

	HTML DOMelem.属性名;

2、*设置属性值:
	核心DOMelem.setAttribute("属性名","属性值");

	HTML DOMelem.属性名="新值";

3、删除属性值:
	*核心DOMelem.removeAttribute("属性名")

	HTML DOMelem.属性名="" - 虽然简单,但是有的情况会删不干净,有的属性删不干净依然会有功能比如:href

4、判断有没有 - 垃圾
	核心DOMelem.hasAttribute("属性名");

	HTML DOMelem.属性名!="";

	返回的结果是一个布尔值,只能判断有没有,不能判断是什么

HTML DOM:有两个小缺陷:
	1class需要写为className
	2、一切自定属性不能操作
	3、删除删不干净,依然会留下属性节点

3、元素的样式:

1、内联样式:
	获取:elem.style.css属性名
	设置:elem.style.css属性名="css属性值"
	特殊:
		1、css属性名如果有横线要省略,变为小驼峰命名法
		2、获取的时候只能获取到内联样式,这个小缺陷可以忽略不计

2、样式表: - 不推荐
		//获取到你想要操作的某个样式表
		var sheet=document.styleSheets[i];
		//获取样式表中所有的样式规则
		var rules=sheet.cssRules;
		//选出自己想要操作的某个规则
		var rule=rules[i];
		//操作
		获取:console.log(rule.style.css属性名);
		设置:rule.style.css属性名="css属性值"

为什么更推荐内联:
	1、不会牵一发动全身
	2、优先级一定是最高的

DOM1 - 掘金 (juejin.cn)
DOM3 - 掘金 (juejin.cn)