首页 > 代码库 > jquery DOM 创建、插入、删除
jquery DOM 创建、插入、删除
1.创建元素节点:
$("<div></div>")
2.创建文本节点,与创建元素节点类似,可以直接把文本内容一并描述
$("<div>我是文本节点</div>")
3.创建属性节点:与创建元素节点同样的方式
$("<div id=‘test‘ class=‘aaron‘>我是文本节点</div>")
$("<div class=‘right‘><div class=‘aaron‘>动态创建DIV元素节点</div></div>") //一句话创建元素、文本、属性节点
jquery较简洁,而如果用javascript,则代码比较多
jquery:
var $body = $(‘body‘);
$body.on(‘click‘, function() {
//通过jQuery生成div元素节点
var div = $("<div class=‘right‘><div class=‘aaron‘>动态创建DIV元素节点</div></div>")
$body.append(div)
})
javascript:
var body = document.querySelector(‘body‘);
// document.addEventListener(‘click‘,function(){
// //创建2个div元素
// var rightdiv = document.createElement(‘div‘)
// var rightaaron = document.createElement("div");
// //给2个div设置不同的属性
// rightdiv.setAttribute(‘class‘, ‘right‘)
// rightaaron.className = ‘aaron‘
// rightaaron.innerHTML = "动态创建DIV元素节点";
// //2个div合并成包含关系
// rightdiv.appendChild(rightaaron)
// //绘制到页面body
// body.appendChild(rightdiv)
// },false)
二、DOM内部插入append() 和 appendTo()
.append()和.appendTo()两种方法功能相同,主要的不同是语法——内容和目标的位置不同
append() 前面是被插入的对象,后面是要在对象内插入的元素内容 body.append(div)
appendTo()前面是要插入的元素内容,而后面是被插入的对象 div.appendTo(body)
$(".content").append(‘<div class="append">通过append方法添加的元素</div>‘) $(‘<div class="appendTo">通过appendTo方法添加的元素</div>‘).appendTo($(".content"))
三、DOM外部插入after() 与 before()
- before与after都是用来对相对选中元素外部增加相邻的兄弟节点
- 2个方法都是都可以接收HTML字符串,DOM 元素,元素数组,或者jQuery对象,用来插入到集合中每个匹配元素的前面或者后面
- 2个方法都支持多个参数传递after(div1,div2,....)
注意点:
- after向元素的后边添加html代码,如果元素后面有元素了,那将后面的元素后移,然后将html代码插入
- before向元素的前边添加html代码,如果元素前面有元素了,那将前面的元素前移,然后将html代码插入
<div> <p id="btn">点击在前插入</p> </div> $("#btn").on("click", function(){ $("#btn").before("<h1> 我是before</h1>") })
四、DOM内部插入 prepend() 与 prependTo()
跟append()与appendTo() 方法一样
区别是 append()与appendTo() 默认加到子元素的后面, 即排到子元素队伍后面;而 prepend() 与 prependTo() 是排在队伍前面
- append()向每个匹配的元素内部追加内容
- prepend()向每个匹配的元素内部前置内容
- appendTo()把所有匹配的元素追加到另一个指定元素的集合中
- prependTo()把所有匹配的元素前置到另一个指定的元素集合中
五、DOM外部插入 insertAfter insertBefore
与 before() , after() 方法类似
$(‘<p style="color:red">测试insertBefore方法增加</p>‘, ‘<p style="color:red">多参数</p>‘).insertBefore($(".test1")) //插入到test1 前,两者是兄弟关系 $(‘<p style="color:red">测试insertAfter方法增加</p>‘, ‘<p style="color:red">多参数</p>‘).insertAfter($(".test2"))// 插入到test2 后,兄弟关系
六、DOM节点删除 empty()
empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。
<div id="test"> <p>p元素1</p> <p>p元素2</p> </div>
$("#test").empty(); // 只剩下<div id="test"></div>
七、删除 remove()
<div class="test1"> <p>p元素1</p> <p>p元素2</p> </div> $(".test1").remove(); //删除整个 class=test1的div节点 $("p").remove(":contains(‘2‘)"); // 删除p元素集合中中文本包含数字2 的p元素
empty方法
- 严格地讲,empty()方法并不是删除节点,而是清空节点,它能清空元素中的所有后代节点
- empty不能删除自己本身这个节点
remove方法
- 该节点与该节点所包含的所有后代节点将同时被删除
- 提供传递一个筛选的表达式,删除指定合集中的元素
jquery DOM 创建、插入、删除