如何从输入中获取所有价值

时间:2012-06-14 07:22:32

标签: jquery html

我有以下示例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();
});

使用此脚本时出现错误,如何解决?

5 个答案:

答案 0 :(得分:3)

尝试这样

var val = [];
$('input[class^="output_"]').each(function(){
   val.push($(this).val());
});
  1. 你写了ouput而不是output
  2. 将属性值包装在引号""
  3. (并且使用push不需要为数组使用显式索引)

答案 1 :(得分:3)

虽然其他答案完全有效,但使用map时,这是一个稍短的替代方案,get会返回一个数组:

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

请注意,在您的代码中,您编写了“输出”而不是“输出”。

答案 2 :(得分:1)

你可能使用了同一个类,你使用错误的类名尝试:

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

答案 3 :(得分:0)

您可以使用:

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

答案 4 :(得分:0)

看,你有

...class^=ouput_ 

而不是

...class^=output_

你也可以写这个

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