• 原生javascript和jQuery操作DOM的对比总结


    原生javascript和jQuery操作DOM的对比总结

    原文:https://www.cnblogs.com/zhongJaywang/p/6682465.html?utm_source=itdadao&utm_medium=referral

           

     

    JS

    Jquery

    创建元素节点

    document.createElement("p");

     var text=document.createTextNode("hello");//创建文本节点

    $('<p></p>');

    创建并添加文本节点

    var textEl = document.createTextNode("Hello World.");var pEl = document.createElement("p");

    pEl.appendChild(textEl);

    var $p = $('<p>Hello World.</p>');

    复制节点

    var newEl = pEl.cloneNode(true);

    $newEl = $('#pEl').clone(true);

    truefalse的区别:

    • true :克隆整个'<p>Hello World.</p>'节点
    • false:只克隆'<p></p>' ,不克隆文本Hello World.'

    删除节点

    El.parentNode.removeChild(El);//删除EL

    El.parentNode.remove();//删除EL父节点

    $('#El').remove();//删除EL

    $('#El').empty()//删除EL子元素

    替换节点

    El.repalceChild(newNode, oldNode);

    $('p').replaceWith('<p>Hello World.</p>');

    设置属性/获取属性

    imgEl.setAttribute("title", "logo");

    imgEl.getAttribute("title");

    checkboxEl.checked = true;

    checkboxEl.checked;

    $("#logo").attr({"title": "logo"});

    $("#logo").attr("title");

    $("#checkbox").prop({"checked": true});

    $("#checkbox").prop("checked");

    js访问节点方法Js访问父,子,兄弟节点 

    node.getElementById("id");//通过使用 getElementById() 方法

    node.getElementsByTagName("tagname");//通过使用 getElementsByTagName() 方法

    document.getElementsByClassName("intro");//通过使用 getElementsByClassName() 方法

    //访问兄弟节点

    element.nextSibling            //返回位于相同节点树层级的下一个节点。

    element.previousSibling     //返回位于相同节点树层级的前一个元素。

    //访问父节点

    element.parentNode           //返回元素的父节点。

    通过选择器访问

     插入节点

     

    JS向子节点列表的末尾添加新的子节点 El.appendChild(newNode);

     

    原生JS在节点的已有子节点之前插入一个新的子节点: 

    El.insertBefore(newNode, targetNode);

    在匹配元素子节点列表结尾添加内容 

    $('#El').append('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表结尾 

    $('<p>Hello World.</p>').appendTo('#El');

    在匹配元素子节点列表开头添加内容 

    $('#El').prepend('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表开头 

    $('<p>Hello World.</p>').prependTo('#El');

    在匹配元素之前添加目标内容 

    $('#El').before('<p>Hello World.</p>');

    把匹配元素添加到目标元素之前 

    $('<p>Hello World.</p>').insertBefore('#El');

    在匹配元素之后添加目标内容 

    $('#El').after('<p>Hello World.</p>');

    把匹配元素添加到目标元素之后 

    $('<p>Hello World.</p>').insertAfter('#El');

     

     

     

     

     


    目录:

    DOM元素节点:1)文档节点;2)元素节点;3)属性节点;4)文本节点;5)注释节点
        1)创建节点
        2)选择(访问)节点
        3)操作:
          1)节点操作
            1)添加节点
            2)删除节点
            3)替换节点

            4)修改内容:
              1)文本【text】
              2)html
              3)表单val
              4)改变事件

          2)CSS操作
          3)动画

    下文转自:http://www.jb51.net/article/103583.htm

    这篇文章主要给大家介绍了原生JS和jQuery操作DOM的一些对比总结,文中总结了很多的对比,相信对大家的学习或者工作能带来一定的帮助,需要的朋友可以参考借鉴,下面来一起看看吧。

    一、创建元素节点

    1.1 原生JS创建元素节点 

    document.createElement("p"); 
    var text=  document.createTextNode("hello");//创建文本节点

    1.2 jQuery创建元素节点 

    $('<p></p>');

    二、创建并添加文本节点

    2.1 原生JS创建文本节点 

    document.createTextNode("Text Content");

    通常创建文本节点和创建元素节点配合使用,比如: 

    var textEl = document.createTextNode("Hello World.");
    var pEl = document.createElement("p");
    pEl.appendChild(textEl);

    2.2 jQuery创建并添加文本节点: 

    var $p = $('<p>Hello World.</p>');

    三、复制节点

    3.1 原生JS复制节点: 

    var newEl = pEl.cloneNode(true); 

    true和false的区别:

    • true :克隆整个'<p>Hello World.</p>'节点
    • false:只克隆'<p></p>' ,不克隆文本Hello World.'

    3.2 jQuery复制节点 

    $newEl = $('#pEl').clone(true);

    注意:克隆节点要避免`ID重复

    四、 插入节点

    4.1 原生JS向子节点列表的末尾添加新的子节点                                                                                                                                                               

    El.appendChild(newNode);

    原生JS在节点的已有子节点之前插入一个新的子节点: 

    El.insertBefore(newNode, targetNode);

    4.2 在jQuery中,插入节点的方法比原生JS多的多

    在匹配元素子节点列表结尾添加内容 

    $('#El').append('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表结尾 

    $('<p>Hello World.</p>').appendTo('#El');

    在匹配元素子节点列表开头添加内容 

    $('#El').prepend('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表开头 

    $('<p>Hello World.</p>').prependTo('#El');

    在匹配元素之前添加目标内容 

    $('#El').before('<p>Hello World.</p>');

    把匹配元素添加到目标元素之前 

    $('<p>Hello World.</p>').insertBefore('#El');

    在匹配元素之后添加目标内容 

    $('#El').after('<p>Hello World.</p>');

    把匹配元素添加到目标元素之后 

    $('<p>Hello World.</p>').insertAfter('#El');

    五、删除节点

    5.1 原生JS删除节点

     El.parentNode.removeChild(El);
    El.parentNode.remove();

    5.2 jQuery删除节点 

    $('#El').remove();

    六、替换节点

    6.1 原生JS替换节点 

    El.repalceChild(newNode, oldNode);

    注意:oldNode必须是parentEl真实存在的一个子节点

    6.2 jQuery替换节点 

    $('p').replaceWith('<p>Hello World.</p>');

    七、设置属性/获取属性

    7.1 原生JS设置属性/获取属性 

    imgEl.setAttribute("title", "logo");
    imgEl.getAttribute("title");
    checkboxEl.checked = true;
    checkboxEl.checked;

    7.2 jQuery设置属性/获取属性:

    $("#logo").attr({"title": "logo"});
    $("#logo").attr("title");
    $("#checkbox").prop({"checked": true});
    $("#checkbox").prop("checked");

     八、访问节点

    8.1原生js访问节点方法

    node.getElementById("id");//通过使用 getElementById() 方法
    node.getElementsByTagName("tagname");//通过使用 getElementsByTagName() 方法
    document.getElementsByClassName("intro");//通过使用 getElementsByClassName() 方法

      8.2原生Js访问父,子,兄弟节点  

    复制代码
    //访问兄弟节点
    element.nextSibling            //返回位于相同节点树层级的下一个节点。
    element.previousSibling     //返回位于相同节点树层级的前一个元素。
    
    //访问父节点
    element.parentNode           //返回元素的父节点。
    复制代码

      8.3jquery访问节点方法是通过选择器访问,这里不详细叙述

     

    JS

    Jquery

    创建元素节点

    document.createElement("p");

     var text=document.createTextNode("hello");//创建文本节点

    $('<p></p>');

    创建并添加文本节点

    var textEl = document.createTextNode("Hello World.");var pEl = document.createElement("p");

    pEl.appendChild(textEl);

     

    var $p = $('<p>Hello World.</p>');

     

    复制节点

    var newEl = pEl.cloneNode(true);

    $newEl = $('#pEl').clone(true);

    truefalse的区别:

    · true :克隆整个'<p>Hello World.</p>'节点

    · false:只克隆'<p></p>' ,不克隆文本Hello World.'

     

    删除节点

    El.parentNode.removeChild(El);//删除EL

    El.parentNode.remove();//删除EL父节点

    $('#El').remove();//删除EL

    $('#El').empty()//删除EL子元素

    替换节点

    El.repalceChild(newNode, oldNode);

    $('p').replaceWith('<p>Hello World.</p>');

    设置属性/获取属性

    imgEl.setAttribute("title", "logo");

    imgEl.getAttribute("title");

    checkboxEl.checked = true;

    checkboxEl.checked;

    $("#logo").attr({"title": "logo"});

    $("#logo").attr("title");

    $("#checkbox").prop({"checked": true});

    $("#checkbox").prop("checked");

    js访问节点方法Js访问父,子,兄弟节点 

    node.getElementById("id");//通过使用 getElementById() 方法

    node.getElementsByTagName("tagname");//通过使用 getElementsByTagName() 方法

    document.getElementsByClassName("intro");//通过使用 getElementsByClassName() 方法

    //访问兄弟节点

    element.nextSibling            //返回位于相同节点树层级的下一个节点。

    element.previousSibling     //返回位于相同节点树层级的前一个元素。

    //访问父节点

    element.parentNode           //返回元素的父节点。

     

    通过选择器访问

     插入节点

     

    JS向子节点列表的末尾添加新的子节点 El.appendChild(newNode);

     

    原生JS在节点的已有子节点之前插入一个新的子节点: 

    El.insertBefore(newNode, targetNode);

     

    在匹配元素子节点列表结尾添加内容 

    $('#El').append('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表结尾 

    $('<p>Hello World.</p>').appendTo('#El');

    在匹配元素子节点列表开头添加内容 

    $('#El').prepend('<p>Hello World.</p>');

    把匹配元素添加到目标元素子节点列表开头 

    $('<p>Hello World.</p>').prependTo('#El');

    在匹配元素之前添加目标内容 

    $('#El').before('<p>Hello World.</p>');

    把匹配元素添加到目标元素之前 

    $('<p>Hello World.</p>').insertBefore('#El');

    在匹配元素之后添加目标内容 

    $('#El').after('<p>Hello World.</p>');

    把匹配元素添加到目标元素之后 

    $('<p>Hello World.</p>').insertAfter('#El');

     

     

     

     

     

     

     

     

     

     

     

     

     
  • 相关阅读:
    Apache mod_rewrite
    vim 常用设置
    ssh 和 scp 命令访问非默认22端口。
    gulp常用插件
    gulp+Babel 搭建ES6环境
    ES6类与模块
    Autoprefixer处理CSS3属性前缀
    js模块方案
    ES6转码器babel的使用
    window.history.pushState与ajax实现无刷新更新页面url
  • 原文地址:https://www.cnblogs.com/jiangyuzhen/p/10978611.html
Copyright © 2020-2023  润新知