2016-04-14 51 views
1

以前的10 TR jQuery的

$('.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噸不等,類值類dynamicsubtotal到TR之前

+1

我真的沒有得到你想要做的...怎麼可能有人「選擇」一個''? – messerbill

回答

0

我想你真正想要做的是找到所有各dynamicsubtotal元素之前的value元素,讓你在尋找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>

+0

爲什麼人們投票呢? –

+0

如果超過10個元素並且OP想要僅選擇前10個元素,該怎麼辦?僅供參考,那不是我的失望。 – Tushar

+0

@Tushar請閱讀下面的問題:*'我想選擇tr類之前的所有10 tr,並帶有類dynamicubtotal' *所以Arun的答案相當不錯IMO –

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); 
 
});
<!-- 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>

+4

你應該知道你的代表發佈***完整***答案...不是佔位符。不需要成爲FGITW。 –

+0

你能解釋你回答有點我不能理解這部分'var $ prevTRS = $(this).prevUntil('。dynamicsubtotal','.value');' –

+0

請糾正我,如果我從動態變量錯誤價值?我想從dynamicsubtotal和所有prev('。價值') –