#javascript #jquery
#javascript #jquery — jquery — запрос #jquery
Вопрос:
<span>
<label class="label">Color</label>
<span class="foo"><input name="Color" value="Blue" class="customs" maxlength="100" type="text"/></span>
</span>
</span>
<span>
<label class="label">Brand</label>
<span class="input-large"><input name="Brand" value="xxx" class="customs" maxlength="100" type="text"/></span>
</span>
</span>
Я хочу, чтобы все входные значения использовались с помощью JS.
Я написал
$('.customs').each(function() {
alert($('.customs').val());
});
Но каждый раз это дает мне первое входное значение.
Required Alert output: Blue, Brand
Output comes: Blue, Blue
Ответ №1:
заменить
alert($('.customs').val());
с помощью
alert($(this).val());
Ответ №2:
Вы оцениваете селектор на каждой итерации, и я предполагаю, что когда val
вызывается для массива, он выбирает первое значение.
Использовать
$('.customs').each(function() {
alert($(this).val());
});
Или даже лучше,
$('.customs').each(function() {
alert(this.value);
});
поскольку здесь нет необходимости в слое, предоставляемом val
здесь.
Ответ №3:
дважды проверьте соответствие значения имени в ваших двух определениях ввода
Ответ №4:
Поскольку вы используете класс в качестве селектора, вы получаете коллекцию. Вы можете что-то с этим сделать, поместив его в массив или выполнив итерацию по нему.
$('.customs').each(function() {
alert($(this).val());//use this to refer to the current object
});