如何点击a(选中的tr)获取所有下一个数据ID

时间:2016-07-29 10:23:19

标签: javascript jquery

我想要一个数组中所选data-id的所有下一个tr的{​​{1}}。我使用这段代码,但这不是一个好的。

tr

2 个答案:

答案 0 :(得分:1)

使用jQuery map() get() 方法

// iterate over elements using map and generate array elelements
var res = $("tr.selected").nextAll('tr').map(function(){
   // get data attribute value
   return $(this).data('id');
   // get the result object as an array using get method
}).get();

如果您想获取所有兄弟属性值,请改用 siblings() 方法。

var res = $("tr.selected")
   // get all sibling tr     
   .siblings()
   // iterate over elements using map and generate array elelements
   .map(function(){
   // get data attribute value
   return $(this).data('id');
   // get the result object as an array using get method
}).get();

答案 1 :(得分:1)

实际上代码可能看起来像这样:

var ids = $('tr.selected').nextUntil('.selected').map(function() {
  return $(this).data('id');
}).get();

因此,作为演示,请考虑以下示例:

$('tr.selected').each(function() {
  var ids = $(this).nextUntil('.selected').map(function() {
    return $(this).data('id');
  }).get();

  console.log( ids );
});
.selected {
  background: #ccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table border="1">
  <tr data-id="1"><td>Row 1</td></tr>
  <tr data-id="2" class="selected"><td>Row 2</td></tr>
  <tr data-id="3"><td>Row 3</td></tr>
  <tr data-id="4"><td>Row 4</td></tr>
  <tr data-id="5" class="selected"><td>Row 5</td></tr>
  <tr data-id="6"><td>Row 6</td></tr>
  <tr data-id="7"><td>Row 7</td></tr>
</table>