Ответ 1
if(!$(el).is("select")) {
// the input field is not a select
}
Как я могу узнать, является ли поле ввода чем-то иным, чем select
?
Я пробовал с помощью if($(el).not("select"))
, и я тоже выбираю...
if(!$(el).is("select")) {
// the input field is not a select
}
$(el).not("select")
дает массив. Массив всегда дает true в булевых выражениях. Но после того, как вы примените не, этот массив элементов не будет содержать выборки. См. Рабочий пример.
Метод .not()
возвращает новый объект jQuery со всем, от исходного объекта, который не соответствует селектору.
Вы не можете просто использовать его в инструкции if
, подобной этому.
Вместо этого вы используете метод .is
, который проверяет, соответствует ли элемент селектору и возвращает логическое значение.
if (!$(el).is('select'))
if ($(el)[0].nodeName != 'select')
Как насчет тегов <select>
класса:
$(el+":not('.select')")
^ _ ^
if($(el).selectedIndex)
Если у него есть свойство SelectedIndex, оно <SELECT>