<标签名 属性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, 某个节点);