如何使用jQuery收集具有相同ID的HTML元素数组?

时间:2017-03-17 23:40:17

标签: javascript jquery scala twirl

我正在使用Scala Play Framework,Twirl和jQuery。

我有一个动态的行表,取决于模型中的数据量:

<table>
  @for(i <- someDataModel){ //play form containing several fields
    <tr id="dataRow">@i.name</tr> //display the name field string
  }
</table>

我想收集这些行中的所有值,并将它们添加到数组中,以便在jQuery中处理它们以进行CSV导出。

我试图使用jQuery收集数据:

$('#dataRow').filter(function () { 
  var array = [];
  var getData = $('[id="' + this.id + '"]').text(); //get all rows
  var i;
  for (i = 0; i < x.length; ++i) {
    alert(x[i]) //pop up on screen with each value found
    array.push(x[i]) //add to the array
  }
});

上面的代码确实找到了所有行值,但它一次收集所有字符串名称,将它们全部合并为一个字符串,然后遍历每个字符。所以它几乎就在那里,但我只需要价值观是完整的。

我的问题是如何分别遍历所有这些数据,并在所有行具有相同ID时将它们添加到数组中?

1 个答案:

答案 0 :(得分:1)

如何而不是这样做:

var getData = $('[id="' + this.id + '"]').text();

你做这样的事情:

var getData = $('[id="' + this.id + '"]').each(function(){
    var value = $(this).text();
    alert(value);
    array.push(value)
});

评论中的人是正确的,你需要使用类。然后,您可以使用.className而不是选择id属性,但在这种情况下,它并不重要。你真的不想拥有超过1个唯一ID,如果你这样做,那么你做错了。