$('.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>
我希望在使用类的动态小计之前选择具有类值的所有10 tr
发布于 2016-04-14 10:47:18
我认为您真正想要做的是在每个value元素之前找到所有的dynamicsubtotal元素,所以您正在寻找prevUntil
$('.dynamicsubtotal').each(function(i) {
$(this).prevUntil('.dynamicsubtotal', '.value').css('color', 'red').append('<td>' + i + '</td>')
})<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>
发布于 2016-04-14 10:47:08
这就是你要找的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);
});示例(为HTML使用nth-child(1) )
$('.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);
});<!-- 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>
https://stackoverflow.com/questions/36620751
复制相似问题