關於jquery ID選擇器的一點看法

2022-03-27 14:55:05 字數 475 閱讀 6856

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

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

我給出的答案會是:

1. $("#bar")

2.  $("div#bar") 

下面說說我為什麼會給出兩種答案

1. 因為頁面要求id是唯一的,題目中的語句,可以直接優化成id選擇

2. 因為jquery的選擇器引擎用的是sizzle,而$("div#bar")這樣的寫法,在sizzle內部,會是乙個從右往左的查詢順序,也就是先找到id=bar的元素,然後再跟前面的標籤型別做匹配。

也許有人會覺得第二種寫法有點多餘,但實際上,在一些需要限定標籤型別的jquery外掛程式中,這樣的寫法很常見。

在這裡簡單舉個例子,很多人比較熟悉的jqgrid外掛程式中就有這麼一段:

jquery id選擇器和class選擇器的區別

hello world size 方法返回dom物件的個數 hello world id是唯一的,即使有多個id相同的元素,jquery選擇器也只能獲取其中乙個 所以 想在jquery中對id設定動作,id在頁面中只允許出現一次。對於css樣式來說,可以選取頁面中所有id box的dom物件 相容性...

關於JQuery的選擇器

1.id 根據給定的id來匹配元素 如果選擇器包含特殊字元,可以用兩個斜槓表示轉義 比如 查詢id為 mydiv 的元素 mydiv 這樣寫就可以查詢到所有id為 mydiv 的元素了。2.element 根據元素名來匹配所有元素 比如 查詢所有div元素就可以這樣寫 div 3.根據給定的類來匹配...

關於CSS選擇器

通用選擇器 這個選擇器不經常用,看著省事,問題也有。標籤選擇器 html標籤都可以進行設定,但是常用的如ul,li,a標籤等最好還是給乙個class或者id,乙個頁面中如果有多個相同標籤,容易混淆。類選擇器 類選擇器用得比較多,也比較方便。同乙個類名可以賦給多個標籤,同樣設定了樣式也可以進行重複使用...