【JQuery】DOM 的增删改插

操作 DOM



创建 DOM

  • 格式:$(HTML字符串)
  • 返回值:JQuery 对象
let $div = $('<div>创建的节点</div>');
console.log($div); // jQuery.fn.init [div]



插入 DOM

<div>
    <p class="old">旧的</p>
</div>
div {
    width: 100px;
    height: 100px;
    padding: 10px;
    background: lightcoral;
}
appendTo() & append()
  • 格式:last.appendTo(parent) & parent.append(last)
  • 插入子元素 lastlast 成为最后一个子元素
  • 返回值:插入的元素 last & 被插入的元素 parent
let $div = $('div');
let $p = $("<p>新加的</p>").addClass('new');
console.log($p.appendTo($div)); // jQuery.fn.init [p.new, …]
// console.log($div.append($p)); // jQuery.fn.init [div, …]
prependTo() & prepend()
  • 格式:first.prependTo(parent) & parent.prepend(first)
  • 插入子元素 firstfirst 成为第一个子元素
  • 返回值:插入的元素 first & 被插入的元素 parent
let $div = $('div');
let $p = $("<p>新加的</p>").addClass('new');
// console.log($p.prependTo($div)); // jQuery.fn.init [p.new, …]
console.log($div.prepend($p)); // jQuery.fn.init [div, …]
insertAfter() & after()
  • 格式:newRear.insertAfter(front) & front.after(newRear)
  • newRear 插到 front 后面
  • 返回值:插入的元素 newRear & 被插入的元素 front
let $oldP = $('p.old');
let $newP = $("<p>新加的</p>").addClass('new');
console.log($newP.insertAfter($oldP)); // jQuery.fn.init [p.new, …]
// console.log($oldP.after($newP)); // jQuery.fn.init [p.old, …]
insertBefore() & before()
  • 格式:newFront.insertBefore(rear)& rear.before(newFront)
  • front 插到 rear 前面
  • 返回值:插入的元素 newFront & 被插入的元素 rear
let $oldP = $('p.old');
let $newP = $("<p>新加的</p>").addClass('new');
// console.log($newP.insertBefore($oldP)); // jQuery.fn.init [p.new, …]
console.log($oldP.before($newP)); // jQuery.fn.init [p.old, …]



替换 DOM

replaceWith()
  • 格式:old.replaceWith(new);
  • old 替换 new
  • 返回值:被替换的 old 标签
let $oldP = $('p.old');
let $newP = $("<p>新加的</p>").addClass('new');
console.log($oldP.replaceWith($newP)); // jQuery.fn.init [p.old, …]
replaceAll()
  • 格式:new.replaceAll(old);
  • new 替换掉所有的 old
  • 返回值:替换的 new 标签
let $oldP = $('p.old');
let $newP = $("<p>新加的</p>").addClass('new');
console.log($newP.replaceAll($oldP)); // jQuery.fn.init [p.new, …]



删除 DOM

remove()
  • 格式:a.remove()
  • 删除 a 标签元素
  • 返回值:被删除的 a 元素
let $oldP = $('p.old');
console.log($oldP.remove()); // jQuery.fn.init [p.old, …]
empty()
  • 格式:a.empty()
  • 清除 a 标签元素的内容,a 标签自己还在
  • 返回值:被清空的 a 标签
let $div = $('div');
console.log($div.empty()); // jQuery.fn.init [div, …]



包裹 DOM

  • 格式:inner.wrap(outer)
  • inner 元素外包裹一个 outer 元素
  • outer 可以为 HTML 字符串 / DOM 对象 / JQuery 对象
$("p").wrap("<div class='wrap'></div>");
$("p").wrap(document.createElement('div'));
$("p").wrap($("<div class='outer'></div>"));

以上操作,都会包括每一个 p 标签

  • 返回值:被包裹的 inner 元素
console.log($("p").wrap("<div class='wrap'></div>")); // jQuery.fn.init [p.old, …]



克隆 DOM

克隆原生 JS 节点
  • 格式:DOM.cloneNode(bool)
  • 接收一个布尔参数:false → 只克隆节点,不克隆内容 (默认);true → 内容也克隆
let div = document.getElementsByClassName('wrap')[0];
let divCopy = div.cloneNode(true);
document.body.appendChild(divCopy);

注意:该方法只克隆 DOM 元素,不会把元素身上绑定的事件也克隆过来

div.onclick(() => {
    console.log('点击事件');
})
克隆 JQuery 节点
  • 格式:JQuery.clone(bool)
  • 接收一个布尔参数:false → 只克隆对象,不克隆绑定的事件 (默认);true → 绑定的事件也克隆
let $div = $('div.box');
$div.click(() => {
    console.log('点击事件');
})
let $divCopy = $div.clone(true);
$(document.body).append($divCopy);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JS.Huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值