jQuery 的選擇器支援:揭開神秘面紗
雖然jQuery 擁有廣泛的CSS 選擇器支持,但某些選擇器如:nth-last-child()仍然難以捉摸。然而,它並不像看起來那麼簡單。
jQuery 對CSS3 選擇器的部分實作
儘管聲稱符合選擇器等級3,但jQuery 的選擇器實現在某些方面存在缺陷,如其文件中所闡明的。它依賴其底層選擇器庫 Sizzle,它支援大多數但不是全部 3 級選擇器。
支援與不支援的選擇器
從jQuery 1.9 開始,Sizzle 支援幾乎所有3 級選擇器,除了:
此外,jQuery 增加了自己的選擇器。
:nth-last-child() 操作
:nth-last-child( ) 選擇器似乎可以在某些瀏覽器中工作,因為jQuery 利用了document.querySelectorAll()。同時支援 :nth-last-child() 和 document.querySelectorAll() 的瀏覽器(例如 Firefox、Chrome 和 IE9)會傳回 jQuery 可以利用的節點清單。
回退機制和 IE8 相容性
如果 document.querySelectorAll() 失敗,jQuery 將回退到 Sizzle。但是,Sizzle 不支援 :nth-last-child()。由於 IE8 沒有實作 document.querySelectorAll(),後備機制失敗,導致 IE8 上失敗。
替代方案
升級到 jQuery 1.9 或更高版本解決:nth-last-child() 問題。或者,jQuery 提供自訂選擇器擴充功能來實作不支援的偽類。
以上是jQuery 真的支援所有 CSS 選擇器嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!