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 創建、插入、刪除