※DOM包覆插入操作
官網連結目前有4個:
wrap就是包覆起來的意思
.wrap():插入到外層
.wrapInner():插入到內層
.wrapAll():會將選擇器變成一組,然後插入到外層
.unwrap():將外層刪除
※範例
<style> .xxx{border:solid 1px blue} .ooo{border:solid 1px red} </style> $(function() { //$('p').wrap('<div>div</div>'); $('p').wrap(function(){ return '<div>div</div>'; }); //$('p').wrapInner('<div>div</div>'); /* $('p').wrapInner(function(){ return '<div>div</div>'; }); */ //$('p').wrapAll('<div>div</div>'); $('p').addClass('xxx'); $('div').addClass('ooo'); $('button').click(function(){ $('p').unwrap(); }); }); ---------- <p>p1</p> <span>span1</span> <p>p2</p> <span>span2</span> <p>p3</p> <button>unwrap</button>
※wrapAll()沒有function的寫法
※裡面不一定要寫HTML,也可以寫選擇器
※以下是按F12看到的結果,IE按DOM總管;Chrome按Elements,檢視原始檔是看不出來的
※HTML使用wrap後會變成如下的樣子
<div> div <p>p1</p> </div> <span>span1</span> <div> div <p>p2</p> </div> <span>span2</span> <div> div <p>p3</p> </div>
※HTML使用wrapInner後會變成如下的樣子
<p> <div> div p1 </div> </p> <span>span1</span> <p> <div> div p2 </div> </p> <span>span2</span> <p> <div> div p3 </div> </p>
※HTML使用wrapAll後會變成如下的樣子
<div> div <p>p1</p> <p>p2</p> <p>p3</p> </div> <span>span1</span> <span>span2</span>
※DOM 外部插入操作
官網連結目前有4個:
.after():在前面插入
.before():在後面插入
.insertAfter():在前面插入
.insertBefore():在後面插入
※after和insertAfter基本功能一樣,只是一個選擇器在前、一個在後;before和insertBefore也是一樣
※after和before還多了function寫法和多個參數寫法
※基本寫法
$(function(){ $('p').after('<div>div</div>'); // $('<div>div</div>').insertAfter('p'); // $('p').before('<div>div</div>'); // $('<div>div</div>').insertBefore('p'); }); ---------- <p>p1</p> <span>span1</span> <p>p2</p> <span>span2</span> <p>p3</p>
※HTML會變成如下的樣子
<p>p1</p> <div>div</div> <span>span1</span> <p>p2</p> <div>div</div> <span>span2</span> <p>p3</p> <div>div</div>
※p後面會多個div;before就變成在前面
※after和before的function和多參數寫法
$(function(){ // $('p').after('<div>div</div><h1>h1</h1>'); $('p').after('<div>div</div>', '<h1>h1</h1>'); /* $('p').after(function(){ return '<div>div</div>'; }); */ }); ---------- <p>p1</p> <span>span1</span> <p>p2</p> <span>span2</span> <p>p3</p>
※第一行的註解和第二行都是一樣的意思
※多行註解是function的寫法,當然不會有return '<div>div</div>', '<h1>h1</h1>'這種東西
※DOM 內部插入操作
官網連結目前有6個:
.append():在後面插入
.appendTo():在後面插入
.prepend():在前面插入
.prependTo():在前面插入
※append和appendTo基本功能一樣,只是一個選擇器在前、一個在後;prepend和prependTo也是一樣
※append和prepend還多了function寫法和多個參數寫法
※prepend的HTML看起來和before一樣,兩個都寫的話,會發現prepend會在裡面、before在最外面;append和after這一組也是一樣
.text():設定和取得「<>xxx</>」之間的字元,也就是xxx,所以input無效,因為它是value
此方法對HTML和XML都有效
如果設定HTML,會將「<」轉成「<」;「>」轉成「>」
.html():設定和取得HTML,此方法只對HTML有效,所以名稱才取名為html
※.append()、.appendTo()、.prepend()、.prependTo() 的基本寫法
$(function(){ $('p').append('<div>div</div>'); // $('<div>div</div>').appendTo('p'); // $('p').prepend('<div>div</div>'); // $('<div>div</div>').prependTo('p'); }); ---------- <p>p1</p> <span>span1</span> <p>p2</p> <span>span2</span> <p>p3</p>
※append和prepend的function和參數寫法
$(function(){ $('p').append('<div>div</div><h1>h1</h1>'); // $('p').append('<div>div</div>', '<h1>h1</h1>'); /* $('p').append(function(){ return '<div>div</div>'; }); */ }); ---------- <p>p1</p> <span>span1</span> <p>p2</p> <span>span2</span> <p>p3</p>
※取得.text()、.html()
$(function(){ alert($('div').html()); alert($('div').text()); }); ---------- <div> div <p> p <span>span</span> </p> </div>
※結果:
※上面是html();下面是text(),可以看出text沒有html標籤
※設定.text()、.html()
$(function() { $('p').text('<h1>h1</h1>'); // $('p').html('<h1>h1</h1>'); }); ---------- <div> div <p> p <span>span</span> </p> </div>
※.text()結果(上面是結果圖,下面是HTML最後的結果):
※.html()結果(上面是結果圖,下面是HTML最後的結果):
※使用function設定.text()、.html()
$(function() { $('p > span').text(function(i){ return '<h1>' + i + '</h1>'; }); /* $('p > span').text(function(i){ return '<h1>' + i + '</h1>'; }); */ }); ---------- <div> div <p> p <span>span</span> <span>span</span> <span>span</span> </p> </div>
※.text()結果(上面是結果圖,下面是HTML最後的結果):
※.html()結果(上面是結果圖,下面是HTML最後的結果):
沒有留言:
張貼留言