標籤:

(jQuery中的DOM操作

jQuery中的DOM操作

  看看DOM操作都有哪些

逐一來看

先寫一份HTML代碼,後面的代碼將操作這份HTML代碼

<p title="選擇你最喜歡的水果">你最喜歡的水果?</p> <ul> <li title="蘋果">蘋果</li> <li title="橘子">橘子</li> <li title="菠蘿">菠蘿</li> </ul>

▓▓▓▓▓▓ 查找節點

1、查找元素節點

查找節點可以用各種各樣的選擇器來查找

$("ul li");

2、查找屬性節點

可以用attr()方法,參數是一個的時候是查找屬性,兩個的時候是設置屬性

console.log($("li:eq(2)").attr("title"));//菠蘿

▓▓▓▓▓▓ 查找節點

1、創建元素節點

var $li_1 = $("<li></li>");

2、創建文本節點

var $li_1 = $("<li>香蕉</li>");

3、創建屬性節點

var $li_1 = $("<li title="香蕉">香蕉</li>");

▓▓▓▓▓▓ 插入節點

1、向每個匹配的元素追加內容

$("li:eq(1)").append("<p>香蕉</p>");

2、將匹配的元素追加到指定元素中

$("<p>香蕉</p>").appendTo("li:eq(1)");

這兩種方法都是進行同一個操作,prepend()和prependTo()與上述方法類似,不同之處就是在元素內部前插入內容

3、在每個匹配的元素之後插入內容

$("li:eq(1)").after("<p>香蕉</p>");

4、將匹配的元素插入到指定的元素後面

$("<p>香蕉</p>").insertAfter("li:eq(1)");

這兩種方法都是進行同一個操作,before()和insertBefore()與上述方法類似,不同之處就是在元素前插入內容

▓▓▓▓▓▓ 刪除節點

1、remove()方法

當某個節點用了remove()方法之後,該節點所包含的所有後代節點都將同時刪除。這個方法的返回值是一個指向已被刪除的節點的引用,因此可以在後面再使用這些元素

var $li = $("li:eq(1)").remove(); $li.appendTo("ul");

remove()方法也可以選擇性的刪除元素

$("ul li").remove("li[title="菠蘿"]");

2、detach()方法

detach()方法和remove()方法用法一樣,不同點是detach()方法,所有綁定的事件、附加的數據等都會保留下來

$("ul li").click(function(){ alert($(this).html());}); var $li = $("ul li:eq(1)").detach();$li.appendTo("ul");//點擊事件會保存下來

3、empty()方法

empty()方法並不是刪除節點而是清空節點

$("ul li:eq(2)").empty();

▓▓▓▓▓▓ 複製節點

1、clone()方法

$("ul li").click(function(){ $(this).clone(true).appendTo($("ul"));

傳入參數true時,會複製元素中所綁定的事件

▓▓▓▓▓▓ 替換節點

1、replaceWith()和replaceAll()

replaceWith()方法的作用是將所有匹配的元素都替換成指定的元素

$("p").replaceWith("<p>香蕉</p>");

replaceAll()方法只是將replaceWith()方法翻過來了

$("<p>香蕉</p>").replaceAll("p");

▓▓▓▓▓▓ 包裹節點

1、wrap()方法

將某個節點用其他的標記包裹起來,如果是一組節點,那麼就會包裹這一組節點裡的每個節點

$("li").wrap("<b></b>");

2、wrapAll()方法

與wrap()方法不同的是,即使是一組節點,也只會用一個節點包裹

$("li").wrapAll("<b></b>");

3、wrapInner()方法

將匹配的元素的子內容(包括文本節點)用其他結構化的標記包裹

▓▓▓▓▓▓ 屬性操作

1、獲取屬性和設置屬性

attr()方法傳遞一個參數的時候是獲取屬性,傳遞兩個參數的時候是設置屬性

$("p").attr("title","you title");

2、刪除屬性

removeAttr()方法

$("p").removeAttr("title");

▓▓▓▓▓▓ 樣式操作

1、獲取樣式和設置樣式

可以用attr()方法

2、追加樣式

addClass()是在原有的樣式上添加樣式

$("p").addClass("another");

3、移除樣式

removeClass()方法可以刪除class屬性,如果有多個需要刪除要用空格將他們分隔,如果不傳入參數則表示移除全部class

$("p").removeClass("another");

4、切換樣式

toggle()方法是交替執行代碼

$("p").toggle(function(){ // 函數1 },function(){ // 函數2 });

toggleClass()方法控制樣式上的重複切換,如果類名存在就刪除它,如果不在就添加它  

$("p").toggleClass("another");

5、判斷是否含有某個樣式

hasClass()可以用來判斷元素中時候含有某個class,如果有,返回true,否則,返回false

$("p").hasClass("another");

▓▓▓▓▓▓ 設置和獲取HTML、文本和值

1、html()方法

此方法類似於innerHTML,可以用來讀取或者設置某個元素中的HTML內容

$("p").html("<b>香蕉</b>");

2、text()方法

類似於innerText,可以用來讀取或者設置某個元素中的文本內容

$("p").text("hello");

3、val()方法

類似於value屬性,可以用來設置和獲取元素的值。如果元素為多選,則返回一個包含所有選擇的值的數組

▓▓▓▓▓▓ 遍歷節點

1、children()方法

該方法用於取得匹配元素的子元素集合,值考慮子元素不考慮其他後代元素

$("ul").children();

2、next()方法

匹配元素後面緊鄰的同輩元素

$("ul").next();

3、prev()方法

匹配元素前面緊鄰的同輩元素

4、siblings()方法

匹配元素前後所有的同輩元素

5、closest()方法

該方法用於取得最近的匹配元素,首先檢查當前元素是否匹配,如果匹配直接返回該元素,否則向上查找父級元素,逐級向上查找,如果什麼都沒有找到則返回一個空的jQuery對象。

6、parent()與parents()方法

parent()方法獲得集合中每個匹配元素的父級元素

parents()方法獲得集合中每個元素的祖先元素

  

▓▓▓▓▓▓ CSS-DOM操作

1、css()方法

可以獲取元素的屬性也可以設置元素的屬性

$("p").css({fontSize:"20px",backgroundColor:"green"});

2、height()方法、innerHeight()方法和outerHeight()方法

height()方法是獲取width屬性,innerHeight()方法獲取的是width + padding,outerHeight()方法獲取的是width + padding + border

3、offset()方法

獲取元素在當前可視區的相對偏移

4、position()方法

    獲取元素相對於最近的一個position樣式屬性設置為relative或者absolute的父元素的相對偏移

5、scrollTop和scrollLeft()方法

獲取元素的滾動條距離頂端的距離和左側的距離

推薦閱讀:

jQuery仿翻牌效果菜單
jQuery $(document).ready() 的執行順序有哪些規律?

TAG:jQuery |