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表示是否会复制元素上的事件处理函数,而原生的表示深克隆还是浅克隆
  • 相关阅读:
    国内乡村安防全面建设仍需推进,EasyNVR/EasyGBS/EasyCVR平台助力治安防控
    TSINGSEE青犀视频播放视频流的编码格式和封装格式有什么关系?
    全景摄像头怎么接入网页进行视频直播?
    EasyNTS编译报错could not read Username for XXXXX
    【LOJ#3005】Limited Memory
    【BZOJ2407】探险
    【洛谷P4480】餐巾计划问题
    【CF163E】e-Government
    【洛谷P4332】三叉神经树
    【洛谷P7518】宝石
  • 原文地址:https://www.cnblogs.com/zgx123/p/7425551.html
Copyright © 2011-2022 走看看