jQuery-检查输入是否不是选择字段

44

如何判断输入字段是否不是select

我尝试了if($(el).not("select")),但是它也包含了选择项...

6个回答

102
if(!$(el).is("select")) {
    // the input field is not a select
}

为什么原来的方法行不通呢?乍一看似乎应该可以...你的回答似乎只是在否定上打了个擦边球...我在其他人的回答中看到了答案。或许把它编辑到这个回答中会更好,因为这是被接受的答案,所以人们只需要看这一个就够了(个人意见)。 :) - Chris
1
@Chris,因为.not()函数返回的是jQuery元素数组,而不是可以测试真/假的布尔值。 - Darin Dimitrov

3
.not()方法返回一个新的jQuery对象,其中包含原始对象中与选择器不匹配的所有内容。
不能像那样在if语句中使用它。
相反,您可以使用.is方法,该方法检查元素是否与选择器匹配并返回布尔值。
if (!$(el).is('select'))

3
< p > $(el).not("select") 给你一个数组。在布尔表达式中,数组总是返回true。但是,在应用not之后,这个元素的数组将不包含选择。查看工作示例


但我只需要一个真/假值,而不是一个数组。我该怎么办? - Alex

2

<select> 标签添加一个类名如何:

$(el + ":not('.select')")

1
if($(el).selectedIndex)

如果它有一个SelectedIndex属性,那么它就是一个<SELECT>

对于 Firefox,如果没有选择任何内容,则会将其计为 false。 - Royalty

1
if ($(el)[0].nodeName != 'select')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接