如果任何输入类型元素不可见,则jQuery .is('input:hidden')函数返回true

时间:2017-09-11 21:28:42

标签: jquery

您可以使用jQuery .is()函数来确定html元素是否属于特定类型。例如,

UITextView
如果x引用

将返回true

$(x).is('input:text') 

元素。

我刚注意到,如果你使一个文本(或任何其他)输入元素不可见,那么使用<input type="text'> ,它总是返回$(x).is('input:hidden')

实际匹配

TRUE

元素,你必须做

<input type="hidden">

我在这里遗漏了什么,或者这是一个错误?我想:隐藏引用了元素类型,而不是元素的可见性

这是必备的Codepen:https://codepen.io/anon/pen/LzPdaj

1 个答案:

答案 0 :(得分:2)

首先,使用jQuery方法is,您没有检查元素类型,而是检查jQuery选择器 - https://api.jquery.com/is/

对于选择器,在CSS :hidden中将匹配隐藏类型,但相同的选择器在jQuery中具有更广泛的含义。

来自文档 - https://api.jquery.com/hidden-selector/

  

由于以下几个原因,可以将元素视为隐藏:

     
      
  • CSS显示值为none。
  •   
  • 它们是type =“hidden”的表单元素。
  •   
  • 它们的宽度和高度明确设置为0.
  •   
  • 隐藏了一个祖先元素,因此页面上不会显示该元素。
  •