標籤:
1.區別jQuery對象和DOM對象。
var text1=document.getElementByTagName("div")
var $text2=$("div")
雖然擷取的html元素相同,但在js中這是兩種對象。它們對應不同的方法,第一個是DOM對象就不能使用jQuery提供的方法,而第二個就可以使用jQuery的方法。
jQuery對象是一個合集,相當於可以大量操作。text1也是一個對象的合集,但它是陣列變數,無法批量同時操作,如果要添加事件,必須使用for迴圈逐個添加,但jQuery則可以$("div").click(function(){}),這個語句可以為一批div元素同時添加點擊事件。
2.$("div,p")這是群組選取器;$("div",this)這是在this範圍中尋找div。
3.jQuery中建立節點有一些類似innerHTML 屬性。
$node=$("<li><a>12345</a></li>")//嵌套多少標籤都可以
$("div").append($node)//添加新建立的對象,對於append()方法,裡面的參數可以是建立的jQuery對象,也可以直接是html字串,還可以是DOM對象。
類似於div.innerHTML+=<li><a>12345</a></li>
在具備著簡潔嵌套的優點的同時,它又具有DOM的優點,可以插入到任意的位置,有append,prepend,insertBefore,insertAfter
4.jQuery的對象在調用方法後會返回原對象,這使得一個對象可以鏈式連續調用方法。如:$("div").append($node1).append($node2)
5.jQuery封裝的動畫方法中,沒有定義預先清除累積動畫。所以有需要時需要自己寫$().stop再寫動畫,或需要用$().is(":animated")判斷動畫狀態,沒有動畫時添加。
6.尋找方法本質上也是選取器,它可以補充更多選擇方式。比如層次選取器的$("div p")選取div的後代元素中的p元素,但它只適用於兩個條件都是標籤的情況。而$().find()則可以嵌套進任何選取器。選取在xx的後代元素中符合xx的對象。
7.$().hover(fn1,fn2) 唯一一個可以同時設定兩個不同類型事件(滑鼠移入和滑鼠移出)的事件。
8.jQuery的$()函數,傳入選取器運算式時返回已有的合格jQuery對象;傳入Html字串時建立DOM對象並封裝成jQuery對象後返回;傳入DOM對象時原樣封裝成jQuery對象後返回,如$(this)
jQuery的一些筆記