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

How to collect an array of HTML elements that have the same ID using jQuery?

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

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

<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 时,如何单独遍历所有这些数据并将它们添加到数组中?

不如这样做:

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,如果你这样做,那你就错了。