Улавливание нескольких значений с помощью JS

#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
});