jQuery:.each()似乎返回错误的值

时间:2014-03-26 19:29:51

标签: javascript php jquery ajax each

我正在研究HTML- / PHP- / Jquery-App,并且遇到了jQuery的.each-return-Value的一些问题。

我有一个包含多个输入字段集的表单,如果需要,您可以添加另一个字段集:

<input id="plot1_id" type="hidden" value="2">
<input id="plot1_position" type="hidden" value="1">
<textarea id="plot1_txt" class="plot_entries">Entry number 1</textarea>
<input id="plot2_id" value="12">
<input id="plot2_position" type="hidden" value="2">
<textarea id="plot2_txt" class="plot_entries">Entry number 2</textarea>
<input id="plot3_id" value="545">
<input id="plot3_position" type="hidden" value="3">
<textarea id="plot3_txt" class="plot_entries">Entry number 3</textarea>
[etc.]

保存时 - jQuery使用

i=1;
$('.plot_entries').each( function() {
        fieldsetAR.push( fieldsets(
        $('#plot' + i + '_id').val(),
        $('#plot' + i + '_position').val(),
        $('#plot' + i + '_txt').val()
        ) );
        i=i+1;
});

将每个输入字段分开以保存&#39;到数组并推送ajax&#39; s .load()。

我的问题: 我无法获得最后一个条目!最后一个或新添加的input-element不会在.each-function中注册为最后一个对象。

例如: 脚本返回的最后一个条目是

plot2_id = '2'
plot2_txt = 'Entry number 2'

而不是真实最后一个(plot3_id&amp; plot3_txt)......

我完全糊涂了 - 希望有人可以帮助我:/

E:仍然困惑但没有解决:( 还有其他想法吗?

2 个答案:

答案 0 :(得分:1)

可能是因为您的i从0开始。将其更改为以1开头

var i=1;
$('.plot_entries').each( function() {
    fieldsetAR.push( fieldsets(
    $('#plot' + i + '_id').val(),
    $('#plot' + i + '_position').val(),
    $('#plot' + i + '_txt').val()
    ) );
    i=i+1;
});

答案 1 :(得分:1)

使用jQuery的索引参数而不是自己保留数字。

$('.plot_entries').each( function(i) {
  ++i;
  fieldsetAR.push( fieldsets(
  $('#plot' + i + '_id').val(),
  $('#plot' + i + '_position').val(),
  $('#plot' + i + '_txt').val()
  ));
});