2012-06-14 2 views
1

У меня есть следующий пример HTML:Как получить все значения из входного

<table id="modem_list"> 
    <tr class="input_1" name="modem"> 
     <td>iPad 1<input type="hidden" value="1" class="output_1"></td> 
    </tr> 
    <tr class="input_2" name="modem"> 
     <td>iPad 2<input type="hidden" value="2" class="output_2"></td> 
    </tr> 
    <tr class="input_3" name="modem"> 
     <td>iPad 3<input type="hidden" value="3" class="output_3"></td> 
    </tr> 
</table> 

И JQuery скрипт:

val = []; 
jQuery('input[class^=ouput_]').each(function(i){ 
    val[i] = jQuery(this).val(); 
}); 

Я получаю сообщение об ошибке при использовании этого сценария, как это исправить?

ответ

3

попробовать как так

var val = []; 
$('input[class^="output_"]').each(function(){ 
    val.push($(this).val()); 
}); 
  1. Вы писали ouput вместо output
  2. завернуть значение атрибута в кавычках ""
  3. (и используя нажим нет необходимости использовать явный индекс для массива)
1

Вы могли бы использовать один и тот же c деваха, вы используете неправильное имя класса попробовать:

var valArr = []; 
jQuery("input[class^='output_']").each(function(){ 
    valArr.push(jQuery(this).val()); 
}); 
3

В то время как другие ответы вполне допустимы, вот несколько короче альтернатива использования map с get возвращает массив:

var val = jQuery('input[class^=output_]').map(function() { 
    return this.value; 
}).get(); 

Обратите внимание, что в ваш код, который вы написали 'ouput' вместо 'output'.

0

Вы можете использовать:

var val= $("#modem_list :input").serializeArray(); 
0

Посмотрите, у вас есть

...class^=ouput_ 

вместо

...class^=output_ 

вы также можете написать эту

val = []; 
jQuery('input[class^=output_]').each(function(i){ 
    val.push(jQuery(this).val()); 
}); 
Смежные вопросы