Вход селектора Jquery [type = text] ')

Я написал код, который в основном выбирает весь элемент input type=text следующим образом:

$('.sys input[type=text]').each(function () {}

Как изменить его, чтобы выбрать input[type=text] или select?

Ответ 1

Использование обычного селектора css:

$('.sys input[type=text], .sys select').each(function() {...})

Если вам не нравится повторение:

$('.sys').find('input[type=text],select').each(function() {...})

Или более кратко, перейдите в аргумент context:

$('input[type=text],select', '.sys').each(function() {...})

Примечание. Внутренне jQuery преобразует приведенное выше значение в find() эквивалент

http://api.jquery.com/jQuery/

Внутри контекст селектора реализуется с помощью метода .find() поэтому $('span', this) эквивалентно $(this).find('span').

Я лично считаю, что первая альтернатива - самая читаемая:), ваше решение, хотя

Ответ 2

$('.sys').children('input[type=text], select').each(function () { ... });

EDIT: На самом деле этот код, приведенный выше, эквивалентен селектору детей .sys > input[type=text], если вы хотите выбрать потомка (.sys input[type=text]), вам нужно использовать параметры, заданные @NiftyDude.

Дополнительная информация:

Ответ 3

Если у вас есть несколько входов в виде текста в форме или таблице, которую нужно перебирать, я сделал следующее:

var $list = $("#tableOrForm :input[type='text']");

$list.each(function(){
    // Go on with your code.
});

Что я сделал, я проверил каждый вход, чтобы узнать, установлен ли тип "текст", затем он захватит этот элемент и сохранит его в списке jQuery. Затем он будет проходить через этот список. Вы можете установить временную переменную для текущей итерации следующим образом:

var $currentItem = $(this);

Это установит текущий элемент текущей итерации для каждого цикла. Затем вы можете делать все, что хотите, с переменной temp.

Надеюсь, это поможет любому!

Ответ 4

$('input[type=text],select', '.sys');

для цикла:

$('input[type=text],select', '.sys').each(function() {
   // code
});

Ответ 5

 var $form = $("#formId");
  form.find("input[type=text]").val("");