我使用的代碼如$('.elem',elem)
,$('.elem',elem).tabs()
。
$(".elem")
用於選擇具有該類的元素。
但逗號後的是什麼?它有什麼用處?
我使用的代碼如$('.elem',elem)
,$('.elem',elem).tabs()
。
$(".elem")
用於選擇具有該類的元素。
但逗號後的是什麼?它有什麼用處?
$('.elem',elem)
是$(elem).find('.elem')
。實際上,這就是jQuery在它下面做的事情。它找到所有元素"elem"
,它們是elem
元素的後代。
這涵蓋在the API documentation。從開始到結束閱讀這篇文章花費一個小時是非常值得的。那裏有各種有用的東西,這些東西並不爲人所知。 :-)(我並不是說這是其中的一個[我自己並不是一個粉絲,有些人],只是通常那裏有很多有用的東西。)
似乎有沒有優勢使用上下文find(),這是真的嗎? –
@roasted:對。 *好吧,我想有些人會指出它的字符少。 :-)但是當我說「這就是jQuery在它下面所做的」我的意思是:它確實檢測到你已經完成了'$('。elem',elem)'並且傳遞給'$(elem ).find( 'ELEM')'。所以'$('。elem',elem)'形式只是增加了另一個函數調用(不是那麼重要)。 –
第二個參數傳遞給jQuery函數定義了第一個選擇器的範圍或上下文。
它告訴jQuery在第二個參數提供的元素中查找所有具有elem
類的元素。 elem
之外的.elem
類別的元素不會被選中。
鑑於下面的HTML:
<div id="included">
<input/>
<input/>
</div>
<div id="excluded">
<input/>
<input/>
</div>
這些選擇產生以下輸出:
console.log($("input", "#included").length); //2 only those inside included
console.log($("input").length); //4 all inputs
我用.find()方法使用了選擇器。但是$(「。elem」,elem)比.find()好。那麼find()方法是否有用? – Natesan
我不確定上下文說明符無法做到的任何事情。我猜'find'更直觀一些,更容易閱讀。 –
這是[上下文選擇器](HTTP:// api.jquery.com/jQuery/#jQuery1),等同於'$(elem).find('。elem');' – billyonecan
我已經使用jQuery近2年了b這並沒有引起太多的關注。 :) +1 –