• 原生js和Jquery操作DOM


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

    目录:

    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访问节点方法是通过选择器访问,这里不详细叙述

  • 相关阅读:
    如何使用C++构建一个极坐标系?
    归一化 [a] 到 [b] 区间
    ffmpeg 如何转换 rgb 图片到 yuv420p?如何使用 C 语言实现 rgb24 如何转换 yuv420p ?
    如何写一个通用的网络包?
    jenkins 配置参数为tag
    jmeter函数助手digest使用简介
    RD-T: 3540 Front Impact Bumper Model
    Listary软件的使用
    Adams各种材料的接触力参数
    Spring 使用构造方法注入方式
  • 原文地址:https://www.cnblogs.com/zhongJaywang/p/6682465.html
Copyright © 2020-2023  润新知