2017-10-12 67 views
2

無效選擇在jQuery的3.2.1,調用下面的表達式返回"undefined"(兩個)::啥:jQuery的

typeof $.expr[":"]["valid"] 
typeof $.expr[":"]["invalid"] 

但是,它可以調用$(":valid")$(":invalid"),並在下面的例子中,它似乎這些選擇器返回具有有效或無效值的輸入。 documentation中沒有提及這些選擇器存在。

請檢查這個example澄清。

  • 你能解釋哪裏有:valid:invalid選擇器被定義?
  • 這些選擇器如何通過jQuery解決?
+0

我不熟悉什麼'$ .expr [「:」]'應該做的事,但對我來說似乎是通過添加'[「有效」]'你想**訪問屬性「有效」**的任何,那首先表達式返回。另外,你的例子最後還有無與倫比的大括號。 –

+1

@Peter B:其結果將是假設存在的有效僞的執行。這個問題的前提是,所說的實現不存在,給提問者一個驚喜。 – BoltClock

回答

3

jQuery不包含自己的實現:valid:invalid選擇器。這些選擇器通過瀏覽器的本地實現通過document.querySelectorAll()在jQuery中工作。

這也意味着$(":valid")$(":invalid")不會在不支持這些選擇器,如Internet Explorer 8(順便說一下,它實現querySelectorAll()唯一的此類瀏覽器)和舊的瀏覽器。

1

:valid:invalid不是jQuery選擇器。它是一個CSS3選擇器。它在CSS選擇器級別3規範中定義爲「有效性僞選擇器」,這意味着它用於基於對用戶輸入的評估對交互式元素進行樣式設置。

您可以從以下網址獲得更多的清晰度。

CSS Selector :invalid