最近看到一道前端面試題:前端
請優化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