Я написал код, который в основном выбирает весь элемент input type=text
следующим образом:
$('.sys input[type=text]').each(function () {}
Как изменить его, чтобы выбрать input[type=text]
или select
?
Я написал код, который в основном выбирает весь элемент input type=text
следующим образом:
$('.sys input[type=text]').each(function () {}
Как изменить его, чтобы выбрать input[type=text]
или select
?
Использование обычного селектора 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()
эквивалент
Внутри контекст селектора реализуется с помощью метода .find() поэтому $('span', this) эквивалентно $(this).find('span').
Я лично считаю, что первая альтернатива - самая читаемая:), ваше решение, хотя
$('.sys').children('input[type=text], select').each(function () { ... });
EDIT: На самом деле этот код, приведенный выше, эквивалентен селектору детей .sys > input[type=text]
, если вы хотите выбрать потомка (.sys input[type=text]
), вам нужно использовать параметры, заданные @NiftyDude.
Дополнительная информация:
Если у вас есть несколько входов в виде текста в форме или таблице, которую нужно перебирать, я сделал следующее:
var $list = $("#tableOrForm :input[type='text']");
$list.each(function(){
// Go on with your code.
});
Что я сделал, я проверил каждый вход, чтобы узнать, установлен ли тип "текст", затем он захватит этот элемент и сохранит его в списке jQuery. Затем он будет проходить через этот список. Вы можете установить временную переменную для текущей итерации следующим образом:
var $currentItem = $(this);
Это установит текущий элемент текущей итерации для каждого цикла. Затем вы можете делать все, что хотите, с переменной temp.
Надеюсь, это поможет любому!
$('input[type=text],select', '.sys');
для цикла:
$('input[type=text],select', '.sys').each(function() {
// code
});
var $form = $("#formId");
form.find("input[type=text]").val("");