<标签名 属性1=“属性值1” 属性2=“属性值2”……>文本</标签名>
文本操作
<div class="c1"><span>click</span></div><script>var ele =document.querySelector(".c1");ele.onclick = function (){// 查看标签文本console.log(this.innerHTML)console.log(this.innerText)}ele.ondblclick = function (){// 设置标签文本this.innerHTML = "<a href='#'>mf</a>"//this.innerText = "<a href='#'>mf</a>"}</script>
value操作
像input标签,select标签以及textarea标签是没有文本的,但是显示内容由value属性决定。
<input type="text" class="c1" value="hello world"><button class="btn">change</button><select name="" id="i1"><option value="shandong">山东省</option><option value="hebei" selected="selected">河北省</option><option value="hunan">湖南省</option></select><button class="btn2">change2</button><p><textarea name="" id="i2" cols="30" rows="10">mf</textarea></p><script>// input标签var ele1 = document.querySelector(".c1");console.log(ele1.value);ele1.value = "hello JS!";var btn = document.getElementsByClassName("btn")[0];btn.onclick = function () {// alert(123)// ele1.value = "hello JS!";console.log(this.previousElementSibling);this.previousElementSibling.value = "hello JS!";};// select标签var ele2 = document.querySelector("#i1");console.log(ele2.value);var btn2 = document.getElementsByClassName("btn2")[0];btn2.onclick = function () {ele2.value = "shandong"};// textarea标签var ele3 = document.querySelector("#i2");console.log(ele3.value);ele3.value = "welcome to JS world!"</script>
css样式操作
<p id="p1">Hello world!</p><script>var ele = document.getElementById("p1");ele.onclick = function (){this.style.color = "red"}</script>
属性操作
出于历史原因,操作属性不能总是通过 ele.xxx的形式,下面这种形式更为通用。
elementNode.setAttribute("属性名","属性值")elementNode.getAttribute("属性名")elementNode.removeAttribute("属性名");
并不是所有属性都可以像value那样操作。
<div class="c1" id="i1" k1="v1" value="xxx">hello JS</div><script>var ele = document.querySelector(".c1");// console.log(ele.value);console.log(ele.getAttribute("k1"));console.log(ele.getAttribute("value"));ele.setAttribute("k2","v2");ele.removeAttribute("k1");</script>
class属性操作
有了getAttribute、setAttribute、removeAttribute这种属性操作的通用方法,还要继续讲解class呢?class属性是用的最多的、也是很重要的属性,因此语法重新设计的更简洁。
elementNode.className // 当前css类elementNode.classList.add // 添加css类elementNode.classList.remove // 删除css类
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>.c1{background-color: rebeccapurple;}.c2{color: red;}.hide{display: none;}</style></head><body><div class="c1">hello JS</div><script>var ele = document.querySelector(".c1");ele.onclick = function () {// this.setAttribute('class', 'c1 c2')// this.classList.add("c2");this.classList.add("hide");}</script></body></html>
节点操作
// 创建节点:document.createElement("标签名")// 插入节点somenode.appendChild(newnode) // 追加一个子节点(作为最后的子节点)somenode.insertBefore(newnode,某个节点) // 把增加的节点放到某个节点的前边// 删除节点somenode.removeChild():获得要删除的元素,通过父元素调用删除//替换节点somenode.replaceChild(newnode, 某个节点);
