1、元素的内容
1、*elem.innerHTML:获取或者设置开始标签到结束标签之间的HTML代码,没有兼容性问题,可以识别标签
获取:elem.innerHTML
设置:elem.innerHTML="新内容"
2、elem.textContent:获取或者设置开始标签到结束标签之间的纯文本,但是有兼容性问题,不可以识别标签
获取:elem.textContent
设置:elem.textContent="新文本"
特殊:老IE才叫elem.innerText
3、*input.value:获取或设置单标签(input)的内容准备的
获取:input.value
设置:input.value="新值"
2、元素的属性:
1、*获取属性值:
核心DOM:elem.getAttribute("属性名")
HTML DOM:elem.属性名;
2、*设置属性值:
核心DOM:elem.setAttribute("属性名","属性值");
HTML DOM:elem.属性名="新值";
3、删除属性值:
*核心DOM:elem.removeAttribute("属性名")
HTML DOM:elem.属性名="" - 虽然简单,但是有的情况会删不干净,有的属性删不干净依然会有功能比如:href
4、判断有没有 - 垃圾
核心DOM:elem.hasAttribute("属性名");
HTML DOM:elem.属性名!="";
返回的结果是一个布尔值,只能判断有没有,不能判断是什么
HTML DOM:有两个小缺陷:
1、class需要写为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)