zoukankan      html  css  js  c++  java
  • 常见的dom操作----原生JavaScript与jQuery

    1.创建元素 文本节点


    JavaScript:

    document.createElement(),只接收一个参数,创建后需要手动将其添加到文档树中,例如:

    var newDiv = document.createElement("div");
    if(document.body){   document.body.appendChild(newDiv);
    }else{
      document.documentElement.appendChild(newDiv);
    }

    document.createTextNode(),只接收一个参数,即要插入节点的文本;

    jquery:直接$("<div></div>),或者下面:

    • wrap()   // $A.wrap('B')即元素A层添加B类型的HTML结果
    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    $('.inner').wrap('<div class = "new"/>');

    结果:
      <div class="container">
        <div class="new">
          <div class="inner">Hello</div>
        </div>
        <div class="new">
          <div class="inner">Goodbye</div>
        </div>
      </div>
    • wrapAll()  //所创建的new <div>包裹了所有匹配的元素:
    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    $('.inner').wrapAll('<div class="new" />');

     结果: 
      <div class="container">
       <div class="new">
        <div class="inner">Hello</div>
        <div class="inner">Goodbye</div>
       </div>
       </div>
    • wrappInner() // $A.wrapInner('B')即元素A层添加B类型的HTML结果
    <div class="container">
      <div class="inner">Hello</div>
      <div class="inner">Goodbye</div>
    </div>
    $('.inner').wrapInner('<div class="new" />');

     结果:
      <div class="container">
        <div class="inner">
          <div class="new">Hello</div>
        </div>
        <div class="inner">
          <div class="new">Goodbye</div>
        </div>
      </div>

    2.节点关系及操作


     

    JavaScript:

    父节点:parentNode

    子节点:childNodes

    兄弟节点:nextSibling,previousSibling

    相关操作:

    • appendChild()  向子节点列表的末尾添加新的子节点
    • insetBefore()    已有子节点之前插入一个新的子节点
    • replaceChild()  替换节点
    • removeChild()  删除节点
    • cloneNode(true/false)  复制节点

    jquery:(比较多选择,详情看http://www.css88.com/jqapi-1.9/手册)

    父元素:parent()  parents()

    子元素:children()

    兄弟节点:next()  nextAll()  prev()  prevAll()  siblings()......

    相关操作:

      节点内部插入,插入的内容变子节点

    • append()  appendTo()  向子节点列表的末尾添加新的子节点,注意这两个内容和目标的位置不同,刚好相反
    • prepend() prependTo() 已有子节点之前插入一个新的子节点,注意这两个内容和目标的位置不同,刚好相反

      节点外部插入,插入的内容变兄弟节点

    • after()  before() 
    • insertAfter() insertBefore()
    • replaceAll() replaceWith()  功能类似,但是目标和源相反
    • remove() detach() 这两个相似,都是移除元素,后者不会移除绑定的事件及与该元素相关的jQuery数据
    • empty()  不接受任何参数。不仅移除子元素(和其他后代元素),同样移除元素里的文本
    • clone(flase/true) 深度复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。和原生JavaScript不同,这里的false/true表示是否会复制元素上的事件处理函数,而原生的表示深克隆还是浅克隆
  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/zgx123/p/7425551.html
Copyright © 2011-2022 走看看