$('.dynamicsubtotal').each(function() {
$(this).prev('.value').css('color', 'red')
market += parseInt($(this).prev('.value').find('td:nth-child(6)').text());
console.log(market)
})
<table>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='dynamicsubtotal'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='dynamicsubtotal'></tr>
</table>
我想在tr之前选择类值的所有10 tr class dynamicsubtotal
答案 0 :(得分:1)
这就是您正在寻找的https://api.jquery.com/prevUntil/
$('.dynamicsubtotal').each(function() {
var market = 0;
var $prevTRS = $(this).prevUntil('.dynamicsubtotal', '.value');
$prevTRS.each(function() {
market += parseInt($(this).find('td:nth-child(6)').text() || 0, 10);
});
console.log(market);
});
示例(使用nth-child(1)
简化HTML)
$('.dynamicsubtotal').each(function() {
var market = 0;
var $prevTRS = $(this).prevUntil('.dynamicsubtotal', '.value');
$prevTRS.each(function() {
market += parseInt($(this).find('td:nth-child(1)').text() || 0, 10);
});
console.log(market);
});
&#13;
<!-- results pane console output; see http://meta.stackexchange.com/a/242491 -->
<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='value'><td>10</td></tr>
<tr class='dynamicsubtotal'><td>dyn</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='value'><td>20</td></tr>
<tr class='dynamicsubtotal'><td>dyn</td></tr>
</table>
&#13;
答案 1 :(得分:0)
我认为您真正要做的是在每个value
元素之前找到所有dynamicsubtotal
元素,因此您正在寻找prevUntil
$('.dynamicsubtotal').each(function(i) {
$(this).prevUntil('.dynamicsubtotal', '.value').css('color', 'red').append('<td>' + i + '</td>')
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='dynamicsubtotal'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='value'></tr>
<tr class='dynamicsubtotal'></tr>
</table>
&#13;