本文详细对比了jQuery与原生JavaScript在节点插入操作上的实现方式。涵盖内部插入(append/appendChild、prepend/insertBefore)与外部插入(after/before、insertAfter/insertBefore)两种场景,重点解析jQuery方法中appendTo等具有移动现有元素特性的破坏性操作,帮助开发者根据需求选择合适方案。
jQuery与JavaScript节点插入元素方法详解
二、元素插入操作:
<div>
<p>面朝大海,春暖花开</p>
</div>
jQuery内部与外部插入方法
(一)、jQuery实现方式
1、内部插入节点:
|
方法 |
说明 |
|
append() |
向每个匹配的元素内部追加内容 |
|
appendTo() |
把所有的元素追加到另一个指定的元素集合中,实际上是颠倒了append()的用法。如$(A).append(B)与$(B).appendto(A)是等价的 |
|
prepend() |
向每个匹配的元素内部前置内容 |
|
prependTo() |
把所有匹配的元素前置到另一个指定的元素集合中。实际上是颠倒了preprend()的用法。如$(A).prepend(B)与$(B).prenpendTo(B)等价 |
具体代码实现如下:
$("div").append("<p>这是append()方法添加的内容</p>");//在div元素下第一个子节点位置插入段落
$("div").prepend("<p>这是prepend()方法添加的内容</p>");//在div元素下最后一个子节点位置插入段落
以下两种方法更贴合常规逻辑,且执行结果一致
$("<p>这是appendTo方法添加的内容</p>").appendTo("div");//把段落插到div元素的第一个子节点位置
$("<p>这是prependTo方法添加的内容</p>").prependTo("div");//把段落插到div元素的最后一个子节点位置

2、外部插入节点:
|
方法 |
说明 |
|
after() |
在每个匹配的元素之后插入内容 |
|
before() |
在每个匹配的元素之前插入内容 |
|
insertAfter() |
把所有匹配的元素插入到另一个指定的元素集合的后面 |
|
insertBefore() |
把所有匹配的元素插入到另一个指定的元素集合的前面 |
具体代码实现如下:
$("div").after("<p>这是after()方法添加的内容</p>");//在div元素后面插入段落
$("div").before("<p>这是before()方法添加的内容</p>");//在div元素前面插入段落
$("div").after("<p>这是after()方法添加的内容</p>");//在div元素后面插入段落
$("div").before("<p>这是before()方法添加的内容</p>");//在div元素前面插入段落

3、appendTo()、prependTo()、insertBefore()及insertAfter()方法具备移动特性,若对已存在元素执行插入操作至指定对象,原位置内容将被移除。下方实例演示选取原div内的段落文本并移动至该div之后,效果展示如下:
$("p").insertAfter("div");

JavaScript原生DOM插入操作
(二)、JavaScript实现方式
1、内部插入节点:appendChild()对应jQuery的append(),insertBefore()对应jQuery的prepend()
具体视觉效果参考前述jQuery方法部分……
2、自定义JavaScript扩展DOM功能函数================待续~待续~待续
本文内容至此结束,希望能为读者提供帮助,感谢对本站的支持!