<标签名 属性1=“属性值1” 属性2=“属性值2”……>文本</标签名>

文本操作

  1. <div class="c1"><span>click</span></div>
  2. <script>
  3. var ele =document.querySelector(".c1");
  4. ele.onclick = function (){
  5. // 查看标签文本
  6. console.log(this.innerHTML)
  7. console.log(this.innerText)
  8. }
  9. ele.ondblclick = function (){
  10. // 设置标签文本
  11. this.innerHTML = "<a href='#'>mf</a>"
  12. //this.innerText = "<a href='#'>mf</a>"
  13. }
  14. </script>

value操作

像input标签,select标签以及textarea标签是没有文本的,但是显示内容由value属性决定。

  1. <input type="text" class="c1" value="hello world"><button class="btn">change</button>
  2. <select name="" id="i1">
  3. <option value="shandong">山东省</option>
  4. <option value="hebei" selected="selected">河北省</option>
  5. <option value="hunan">湖南省</option>
  6. </select>
  7. <button class="btn2">change2</button>
  8. <p><textarea name="" id="i2" cols="30" rows="10">mf</textarea></p>
  9. <script>
  10. // input标签
  11. var ele1 = document.querySelector(".c1");
  12. console.log(ele1.value);
  13. ele1.value = "hello JS!";
  14. var btn = document.getElementsByClassName("btn")[0];
  15. btn.onclick = function () {
  16. // alert(123)
  17. // ele1.value = "hello JS!";
  18. console.log(this.previousElementSibling);
  19. this.previousElementSibling.value = "hello JS!";
  20. };
  21. // select标签
  22. var ele2 = document.querySelector("#i1");
  23. console.log(ele2.value);
  24. var btn2 = document.getElementsByClassName("btn2")[0];
  25. btn2.onclick = function () {
  26. ele2.value = "shandong"
  27. };
  28. // textarea标签
  29. var ele3 = document.querySelector("#i2");
  30. console.log(ele3.value);
  31. ele3.value = "welcome to JS world!"
  32. </script>

css样式操作

  1. <p id="p1">Hello world!</p>
  2. <script>
  3. var ele = document.getElementById("p1");
  4. ele.onclick = function (){
  5. this.style.color = "red"
  6. }
  7. </script>

属性操作

出于历史原因,操作属性不能总是通过 ele.xxx的形式,下面这种形式更为通用。

  1. elementNode.setAttribute("属性名","属性值")
  2. elementNode.getAttribute("属性名")
  3. elementNode.removeAttribute("属性名");

并不是所有属性都可以像value那样操作。

  1. <div class="c1" id="i1" k1="v1" value="xxx">hello JS</div>
  2. <script>
  3. var ele = document.querySelector(".c1");
  4. // console.log(ele.value);
  5. console.log(ele.getAttribute("k1"));
  6. console.log(ele.getAttribute("value"));
  7. ele.setAttribute("k2","v2");
  8. ele.removeAttribute("k1");
  9. </script>

class属性操作

有了getAttributesetAttributeremoveAttribute这种属性操作的通用方法,还要继续讲解class呢?
class属性是用的最多的、也是很重要的属性,因此语法重新设计的更简洁。

  1. elementNode.className // 当前css类
  2. elementNode.classList.add // 添加css类
  3. elementNode.classList.remove // 删除css类
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <style>
  7. .c1{
  8. background-color: rebeccapurple;
  9. }
  10. .c2{
  11. color: red;
  12. }
  13. .hide{
  14. display: none;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div class="c1">hello JS</div>
  20. <script>
  21. var ele = document.querySelector(".c1");
  22. ele.onclick = function () {
  23. // this.setAttribute('class', 'c1 c2')
  24. // this.classList.add("c2");
  25. this.classList.add("hide");
  26. }
  27. </script>
  28. </body>
  29. </html>

节点操作

  1. // 创建节点:
  2. document.createElement("标签名")
  3. // 插入节点
  4. somenode.appendChild(newnode) // 追加一个子节点(作为最后的子节点)
  5. somenode.insertBefore(newnode,某个节点) // 把增加的节点放到某个节点的前边
  6. // 删除节点
  7. somenode.removeChild():获得要删除的元素,通过父元素调用删除
  8. //替换节点
  9. somenode.replaceChild(newnode, 某个节点);