iT邦幫忙

0

CSS選擇器用於JQUERY

  • 分享至 

  • xImage

您好:
參考
https://blog.kkbruce.net/2012/03/jquery-selectors-8-form.html#.YghmK99ByUk

他有一段
因為:button是jQuery延伸,並非正規CSS規格的一部份,在DOM的querySelectorAll()函式時,使用:button無法提供更好效能,建議先使用純CSS選擇器,然後使用.filter(":button")來實現更好的效能。

請問 純CSS選擇器這是指?
謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
Felix
iT邦研究生 2 級 ‧ 2022-02-13 12:38:06

因為 CSS 沒有名為 button 的偽類別(:button),故不是純 CSS 選擇器。

如果想要了解更多 CSS 選擇器,請參考:The 30 CSS Selectors You Must Memorize

noway iT邦研究生 3 級 ‧ 2022-02-13 14:57:02 檢舉

您好:如何取 純 CSS 選擇器.filter(":button")
??

Felix iT邦研究生 2 級 ‧ 2022-02-14 03:24:55 檢舉

noway

因為 :button 是 jQuery 的擴展,因此原生的 DOM 方法無法使用(即 document.querySelectorAll(':button') 會出現錯誤)。

如果已經先使用原生 DOM 方法選擇「有 hidden 屬性的按鈕元素」,只要用 filter 方法過濾就行了,就不需要再次使用 jQuery 重新選擇元素了:

const elem = document.querySelectorAll('[hidden]');
const btns = $(elem).filter(':button');
0
Tree
iT邦新手 3 級 ‧ 2022-02-14 11:02:41

如果要用 Vanilla JS 來選到特定 form 中所有的 button 可用以下的方式來取得

const formEl = document.querySelector('form#formId');
const buttons = [...formEl.querySelectorAll('button')];
// buttons = an array of all button elements in form#formId

我要發表回答

立即登入回答