Получайте входные данные разных типов в классе с помощью jQuery

#jquery #jquery-selectors

#jquery #jquery-селекторы

Вопрос:

Допустим, у меня есть функция jquery в JavaScript, и у меня пока есть этот код, который отлично работает:

jQuery('div[class="someClass"] input[type="text"]').each( function() { //some code} . . .

В приведенном выше коде, как я могу настроить таргетинг на несколько типов входных данных, таких как текстовое поле, выпадающий список и т.д. Я довольно новичок в jQuery, поэтому я не в курсе формата, поиск в Google не выявил ничего существенного! Пожалуйста, помогите.

Комментарии:

1. api.jquery.com/category/selectors

Ответ №1:

Если вы готовы выбрать все дочерние элементы, относящиеся к этим типам:

  • input
  • textarea
  • select
  • button

вы можете использовать :input селектор.

 jQuery('div.someClass :input').each(function() {...
  

В противном случае вы можете сделать это в большом селекторе, используя множественный селектор, как предлагает Никлас. Последний вариант — сократить это, используя два выбора. Это может быть немного медленнее, но будет значительно более читаемым:

 jQuery('div.someClass').find('input[type="text"], select, textarea').each(function(){...
  

Обратите внимание, что я использовал селектор классов, чтобы сделать ваш селектор немного аккуратнее.

Ответ №2:

Разделяйте их запятой:

 jQuery('div[class="someClass"] input[type="text"], div[class="someClass"] textarea, div[class="someClass"] select').each( function() { //some code}
  

Ответ №3:

Попробуйте это:

 jQuery('div[class="someClass"] :input').each(function(){
  //Do Something..
})
  

чтобы избежать элементов button, попробуйте:

 jQuery('div[class="someClass"] :input:not(:button)').each(function(){
  //Do Something..
})