获取节点

1.nodeType

nodeType 属性返回节点的节点类型。

  1. console.log(app.nodeType)

2. getAttributeNode()

获取属性节点

3. firtChild

获取第一个子节点

  1. console.log(app.firstChild.nodeType)

4.ChildNodes Children

// childNodes—包含所有的子节点(不管文本还是元素都包含)
// children —只会获取子节点
**

  1. <ul id="app">
  2. <li>hello world</li>
  3. <li>hello world</li>
  4. <li>hello world</li>
  5. <li>hello world</li>
  6. </ul>
  1. // childNodes--包含所有的子节点(不管文本还是元素都包含)
  2. // children --只会获取子节点
  3. var app = document.getElementById("app");
  4. var childs = app.childNodes;
  5. var children = app.children;
  6. console.log(childs)
  7. console.log(children)
  1. // 获取所有的元素节点
  1. var app = document.getElementById("app");
  2. var childs = app.childNodes;
  3. var arr = [];
  4. for(var i=0;i<childs.length;i++){
  5. if(childs[i].nodeType == 1){
  6. arr.push(childs[i])
  7. }
  8. }
  9. console.log(arr);

增加节点

1. HTML DOM appendChild() 方法

可向节点的子节点列表的末尾添加新的子节点。

  1. document.getElementById("myList").appendChild(newListItem);

2. HTML DOM insertBefore() 方法

可在已有的子节点前插入一个新的子节点

  1. document.getElementById("myList").insertBefore(newItem,existingItem);

3. prepend() 方法和append() 方法

prepend():在被选元素的开头加入内容
append(): 在被选元素的结尾加入内容

  1. <ul id="app">
  2. <li>html</li>
  3. </ul>
  4. <script>
  5. // append,prepend
  6. var app = document.getElementById("app");
  7. var p = "<h1>hello world<h1>";
  8. app.prepend(p);
  9. </script>

4. before() 方法和after()方法

before() 方法在被选元素之前插入指定的内容。
after() 方法在被选元素之后插入指定的内容。

  1. <p id="app">hello world</p>
  2. <script>
  3. var app = document.getElementById("app");
  4. app.after("world")
  5. app.before("hello")
  6. </script>

5.createElement()

通过指定名称创建一个元素

  1. var p = document.createElement("p");

6.createTextNode()

可创建文本节点。

  1. var txt = document.createTextNode("hello world");

删除节点

1. removeChild() 方法

方法从被选定元素移除一个或多个类

  1. <div id="app">
  2. <div id="child">child</div>
  3. </div>
  4. <script>
  5. // removeChild()让从元素DOM树,渲染树上都消失
  6. var app = document.getElementById("app");
  7. var child = document.getElementById("child");
  8. app.removeChild(child);
  9. </script>

克隆节点

node.cloneNode(true);

  1. <div id="app">
  2. <div class="one">
  3. hello world
  4. </div>
  5. </div>
  6. <script>
  7. // cloneNode
  8. var app = document.getElementById("app");
  9. var one = document.getElementsByClassName("one")[0];
  10. var test = one.cloneNode(true);
  11. console.log(test);
  12. app.appendChild(test);
  13. </script>

操作css

3-1 HTML DOM classList 属性

元素添加 class:

  1. <style>
  2. .current{color: red;}
  3. </style>
  4. <p id="app">hello world</p>
  5. <button id="btn">移除class</button>
  6. <script>
  7. var app = document.getElementById("app");
  8. var btn = document.getElementById("btn");
  9. app.onclick = function(){
  10. this.classList.add("current")
  11. }
  12. btn.onclick = function(){
  13. \\remove删除指定元素
  14. app.classList.remove("current")
  15. }
  16. </script>

add():
方法将元素插入到指定位置的元素中
addClass():
方法向被选元素添加一个或多个类名**

3-2 toggle() 方法

当点击

元素时进行颜色切换:

  1. <style>
  2. .current{color:red;}
  3. </style>
  4. <p id="app">hello world</p>
  5. <script>
  6. var app = document.getElementById("app");
  7. app.onclick = function(){
  8. // if(this.classList.contains("current")){
  9. // this.classList.remove("current")
  10. // }else{
  11. // this.classList.add("current")
  12. // }
  13. this.classList.toggle("current")
  14. }
  15. </script>

toggleClass():
方法对添加和移除被选元素的一个或多个类进行切换。
contains():
方法用于判断字符串中是否包含指定的字符或字符串。
hasClass():
判断是否包含某个class