前端研习社

JS中元素的增删改查

2018-07-16  本文已影响15人  佩佩216

1. 什么是DOM

DOM 全称是 Document Object Model,也就是文档对象模型。

2. DOM 有什么用

简单来说,通过 DOM 操作HTML元素,你可以改变网页。比如我们现在要更改网页标题,可以直接键入代码:

document.title = 'How to learn javascript'

这个 API 使得在网页被下载到浏览器之后改变网页的内容成为可能。

你可以使用 Javascript 语言来操作 DOM 以改变网页。
为了改变网页,你必须告诉 Javascript 改变哪一个节点。这就是操作 DOM。
改变网页,实际就是操作DOM对节点进行增删改查。

3. DOM元素的增删改查

3.1 添加元素
  let element = document.createElement(tagName[, options])
  var text = document.createTextNode()
  attribute = document.createAttribute(name)
  var commentNode = document.createComment(data)
  var docFragment = document.createDocumentFragment()
  elementNodeReference.classList.add( String [, String] )
  document.write(markup)
  document.writeIn(line)

document.write()和writeIn()的区别是前者没有换行,而后者有换行。

3.2 删除元素
  element.removeAttribute(attrName)
  var oldChild = node.removeChild(child);
-  elementNodeReference.remove()

Child.parentNode.removeChild(child) // 不确定父元素时可这样删除子元素
示例:

  if (node.parentNode) {
  //判断node是否在DOM树中
    node.parentNode.removeChild(node);
  }
语法:
  elementNodeReference.classList.remove( String [,String] )
3.3 修改元素
  Node.innerHTML =new content
Element.innerHTML // 设置或获取描述元素后代的HTML语句

语法:

  const content = element.innerHTML;
  // 返回时,内容包含描述所有元素后代的序列化HTML代码。
  element.innerHTML = markup;
  // 除所有元素的子节点,解析内容字符串,并将生成的节点分配给元素的子元素。
  var dupNode = node.cloneNode(deep)
  <!--example-->
  <body>
  <ul id="myList1">
      <li>iPhone</li>
      <li>iPad</li>
  </ul>
  <ul id="myList2">
      <li>Macbook</li>
      <li>appleMusic</li >
  </ul>
  <button onclick="myFunction()">复制</button>
  <script>
  function myFunction(){
      var itm=document.getElementById("myList2").lastChild;
      var cln=itm.cloneNode(true);
      document.getElementById("myList1").appendChild(cln);
  }
  </script>
  </body>
  <!--点击复制按钮,myList2中最后元素会复制到myList1中-->
  element.setAttribute(name, value)
  var title= document.querySelector("h1")
  title.style.backgroundColor = red // h1背景色改为红色
  replacedNode = parentNode.replaceChild(newChild, oldChild)
  <!--example-->
  <body>
  <ul id="myList">
    <li>iPhone</li>
    <li>iPod</li>
    <li>Macbook</li>
  </ul>
  <button onclick="myFunction()">替换</button>
  <script>
  function myFunction(){
      var textnode=document.createTextNode("Surface pro");
      var item=document.getElementById("myList").childNodes[0];
      item.replaceChild(textnode,item.childNodes[0]);
  }
  </script>
  <!--点击替换按钮,myList中第一个元素会被替换成Surface pro-->
3.4 查找元素
  let attribute = element.getAttribute(attributeName)
  var elements = document.getElementsByClassName(names); 
  var elements = rootElement.getElementsByClassName(names);
  elements = document.getElementsByName(name)
  var elements = document.getElementsByTagName(name)
语法:
elementList = document.querySelectorAll(selectors
上一篇 下一篇

猜你喜欢

热点阅读