我想要一个数组中所选data-id
的所有下一个tr
的{{1}}。我使用这段代码,但这不是一个好的。
tr
答案 0 :(得分:1)
// 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>