• 常见的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表示是否会复制元素上的事件处理函数,而原生的表示深克隆还是浅克隆
  • 相关阅读:
    dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 用户设备上不存在 Arial 字体将导致应用闪退
    WPF 基础 2D 图形学知识 判断点是否在线段上
    WPF 实现自定义的笔迹橡皮擦
    WPF 加载诡异的字体无法布局
    dotnet 5 从 IL 层面分析协变返回类型新特性
    WPF 笔迹触摸点收集工具
    dotnet C# 序列化 XML 时进行自动格式化
    自定义systemctl服务
    maven之三大特性属性、profile、资源过滤
    dependencyManagement与dependencies
  • 原文地址:https://www.cnblogs.com/zgx123/p/7425551.html
Copyright © 2020-2023  润新知