zoukankan      html  css  js  c++  java
  • 原生JS与jQuery操作DOM对比

    一、创建元素节点


    1.1 原生JS创建元素节点


    1
    document.createElement("p");

    1.2 jQuery创建元素节点


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

    二、创建并添加文本节点


    2.1 原生JS创建文本节点


    1
    `document.createTextNode("Text Content");
    • 通常创建文本节点和创建元素节点配合使用,比如:
    1
    2
    3
    var textEl = document.createTextNode("Hello World.");
    var pEl = document.createElement("p");
    pEl.appendChild(textEl);

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


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

    三、复制节点


    3.1 原生JS复制节点:


    1
    var newEl = pEl.cloneNode(true); `
    • truefalse的区别:
      • true :克隆整个'<p>Hello World.</p>'节点
      • false:只克隆'<p></p>' ,不克隆文本Hello World.'

    3.2 jQuery复制节点


    1
    $newEl = $('#pEl').clone(true);
    • 注意:克隆节点要避免`ID重复

    四、 插入节点


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


    1
    El.appendChild(newNode);
    • 原生JS在节点的已有子节点之前插入一个新的子节点:
    1
    El.insertBefore(newNode, targetNode);

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


    • 在匹配元素子节点列表结尾添加内容
    1
    $('#El').append('<p>Hello World.</p>');
    • 把匹配元素添加到目标元素子节点列表结尾
    1
    $('<p>Hello World.</p>').appendTo('#El');
    • 在匹配元素子节点列表开头添加内容
    1
    $('#El').prepend('<p>Hello World.</p>');
    • 把匹配元素添加到目标元素子节点列表开头
    1
    $('<p>Hello World.</p>').prependTo('#El');
    • 在匹配元素之前添加目标内容
    1
    $('#El').before('<p>Hello World.</p>');
    • 把匹配元素添加到目标元素之前
    1
    $('<p>Hello World.</p>').insertBefore('#El');
    • 在匹配元素之后添加目标内容
    1
    $('#El').after('<p>Hello World.</p>');
    • 把匹配元素添加到目标元素之后
    1
    $('<p>Hello World.</p>').insertAfter('#El');

    五、删除节点


    5.1 原生JS删除节点


    1
    El.parentNode.removeChild(El);

    5.2 jQuery删除节点


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

    六、替换节点


    6.1 原生JS替换节点


    1
    El.repalceChild(newNode, oldNode);
    • 注意:oldNode必须是parentEl真实存在的一个子节点

    6.2 jQuery替换节点


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

    七、设置属性/获取属性


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


    1
    2
    3
    4
    imgEl.setAttribute("title", "logo");
    imgEl.getAttribute("title");
    checkboxEl.checked = true;
    checkboxEl.checked;

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


    1
    2
    3
    4
    $("#logo").attr({"title": "logo"});
    $("#logo").attr("title");
    $("#checkbox").prop({"checked": true});
    $("#checkbox").prop("checked");
  • 相关阅读:
    剑指 Offer 59
    665. 非递减数列
    1423. 可获得的最大点数(滑动窗口)
    1208. 尽可能使字符串相等(双指针、滑动窗口)
    643. 子数组最大平均数 I(滑动窗口)
    剑指 Offer 52. 两个链表的第一个公共节点
    295. 数据流的中位数
    888. 公平的糖果棒交换(数组、哈希表)
    Seaborn绘图工具
    Office Politics
  • 原文地址:https://www.cnblogs.com/changningios/p/6437072.html
Copyright © 2011-2022 走看看