在 jQuery 3.2.1 中,调用以下表达式会返回 "undefined"(对于两者):

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

但是,可以调用 $(":valid")$(":invalid") 并且在下面的示例中,这些选择器似乎返回具有有效或无效值的输入。
documentation 中没有提到这些选择器的存在。

请检查此 example 以进行澄清。
  • 你能解释一下 :valid:invalid 选择器是在哪里定义的吗?
  • jQuery 如何解析这些选择器?
  • 最佳答案

    jQuery 不包含它自己的 :valid:invalid 选择器的实现。这些选择器在 jQuery 中通过 document.querySelectorAll() 通过浏览器的 native 标准实现工作。

    这也意味着 $(":valid")$(":invalid") 在不支持这些选择器的浏览器中不起作用,例如 Internet Explorer 8(顺便说一句,唯一实现 querySelectorAll() 的浏览器)和更早版本。

    关于javascript - :valid and :invalid selectors in jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46704270/

    10-11 14:16