關於jquery ID選擇器的一點見解

最近看到一道前端面試題:前端

請優化selector寫法:$(".foo div#bar:eq(0)")面試

 

我給出的答案會是:優化

1. $("#bar")spa

2.  $("div#bar") 插件

下面說說我爲何會給出兩種答案blog

1. 由於頁面要求ID是惟一的,題目中的語句,能夠直接優化成ID選擇select

2. 由於jQuery的選擇器引擎用的是Sizzle,而$("div#bar")這樣的寫法,在Sizzle內部,會是一個從右往左的查找順序,也就是先找到id=bar的元素,而後再跟前面的標籤類型作匹配。im

也許有人會以爲第二種寫法有點多餘,但實際上,在一些須要限定標籤類型的jQuery插件中,這樣的寫法很常見。img

在這裏簡單舉個例子,不少人比較熟悉的jqGrid插件中就有這麼一段:di

相關文章
相關標籤/搜索