15、節點的選擇
(1).first()
(2).last()
(3).slice() 參數 :[開始位置 ,結束位置) 不包括結束位置
(4).children() 直接的子元素 ,也可加參數進行過濾 ,eg : .children('div') 只匹配子元素div
(5).find()
注意 :必須寫參數 find('div'),也可用(*)選取所有,會找到全部子孫節點
性能 :$('ul').find('li').css() 比 $('ul li').css() 性能要好
(6).parent()
(7).parents() 找所有的父節點,包括祖祖...節點
(8).closest() 也是找父節點
區別 :.closest()精確的查找,.closest('.box'),找的是最近的滿足條件的元素(在所有父節點中找,也包括自身),只能是一個
16、創建元素
$<'li'>
$('<div id="box1">123</div>')
17、添加節點
(1)insertBefore() before() 指定元素的前面(兄弟)
(2)insertAfter() after() 指定元素的後面(兄弟)
(3)append() appendTo() 舔到父元素裏面的最後(appendChild)
(3)prepend() preendTo() 舔到父元素裏面的最前
18、節點刪除、清空、替換、clone操作
(1) remove() 只會保留當前selector的結構,操作行爲不會保留(如click事件)
(2) detach() 既保留結構,也保留操作行爲
(3) empty() 清除節點,包括後代元素
(4) 替換節點
$('div').replaceWith($('span')) span替換div
$('div').replaceAll($('span')) div替換span
(2)clone();
注意 : clone的默認行爲不會clone節點的操作行爲,加上參數clone(true)則會克隆節點的操作行爲
19、jQuery中的索引
index()
注意 :
(1)索引是指兄弟節點中的排行
(2)篩選後的排行
(3)善於利用索引做實例,例如選項卡
(4)也可加參數 index('span')
20、each 循環遍歷
$('li').each(function( i , elem ) {
console.log(i) //li的下標
console.log(elem) //元素的元素
$(this) == elem
$(this).html(i);
if (i==2) {
return false; //跳出循環
};
})
21、JQ包裝對象
(1) wrap() $('span').wrap('<div></div>') 給每個span外包一個div
(2) wrapAll() $('span').wrapAll('<div></div>') 所有的span包在一個div中
(3) wrapInner() $('span').wrapInner('<div></div>') 給每個span內包一個div
(4) unwrap() 刪除父級,body是刪除不掉的
eg : 權限設置
22、Jq轉原生Js
get();
eg :
$('.div1').innerHTML //錯誤寫法,一個jq寫法,一個原生js寫法
改寫 :$('.div1').get().innerHTML //則不會出錯,但是結果是 undefined,
進一步改寫 : $('.div1').get(0).innerHTML //$('.div1').get()獲取到的是一個集合
利用轉原生的好處,因爲jq有些js原生方法沒有,比如獲取內容高度
$('.div1').height() //這是div的高,並不是它的內容高
$('.div1').get().scrollHeight()