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

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

4

5 回答 5

3

像这样尝试

var val = [];
$('input[class^="output_"]').each(function(){
   val.push($(this).val());
});
  1. 你写ouput而不是output
  2. 将属性值用引号括起来""
  3. (并且使用 push 不需要为数组使用显式索引)
于 2012-06-14T07:23:38.833 回答
3

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

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

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

于 2012-06-14T07:27:03.420 回答
1

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

var valArr = [];
jQuery("input[class^='output_']").each(function(){
   valArr.push(jQuery(this).val());
});
于 2012-06-14T07:24:42.277 回答
0

看,你有

...class^=ouput_ 

代替

...class^=output_

你也可以写这个

val = [];
jQuery('input[class^=output_]').each(function(i){
   val.push(jQuery(this).val());
});
于 2012-06-14T12:00:42.580 回答
0

您可以使用:

var val= $("#modem_list :input").serializeArray();
于 2012-06-14T09:09:27.367 回答