2015-06-21 85 views
0

我是否需要用大元素的id元素包裝類元素?快速JQUERY SELECTOR點擊

$('#id').find('.class').click 快於 $('.class').click

另外,我想知道。 是<a onclick="function()">link</a> 快於 selector id link with $(selector).click

+0

如果我的工作只是不同類的元素(按鈕),我是否需要將它們包裝或通過id元素進行分組以獲得快速響應點擊功能? – wglihk

回答

0

我真的不認爲你需要關注簡單地使用類選擇器的性能。我想你所問的更大的問題是這兩個選擇器可能會選擇不同的元素。

以下選擇:

$('#id').find('.class') 

是要找到與類名ID爲「ID」元素的「類」的所有子孫元素。

中的第二選擇:

$('.class') 

是要找到與類名「類」的所有元素。

基本上,當他們選擇不同的東西時,詢問哪個更快,這很奇怪。第一個選擇器可能是第二個元素的一個較小的子集(並且速度會更快,但可能不會讓你的頭髮掉毛)。

對於問題的第二部分,它可能取決於你的意思是「更快」。如果您使用jQuery或JavaScript來綁定事件偵聽器,則需要一些時間在DOM中查找元素。但是,您也有能夠延遲附加這些監聽器的優勢,直到加載頁面的重要部分之後。通過onclick屬性附加一個事件監聽器是非常合理的,但它確實取決於項目的大小和範圍。在HTML文件中使用所有的事件監聽器邏輯會變得非常笨拙。使用選擇器可以讓您更好地分離(除其他外)。我鼓勵你做更多的研究,因爲在線上有關於這個主題的大量討論。