2016-04-14 3 views
1

предыдущего 10 тра 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

+1

Я действительно не понимаю, что вы хотите сделать ... как кто-то может «выбрать» ''? – messerbill

ответ

0

Я думаю, что вы на самом деле пытаетесь сделать, это найти все 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>

+0

, почему люди голосуют за это? –

+0

Что делать, если есть более 10 элементов, и OP хочет выбрать только предыдущие 10 элементов? FYI, это не мой downvote. – Tushar

+0

@Tushar, пожалуйста, прочитайте вопрос: * 'Я хочу выбрать все 10 tr с классом до tr с классом dynamicubtotal' *, так что ответ Аруна довольно хорош 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 ('. Dynamicubtotal', '.value');' –

+0

, пожалуйста, исправьте меня, если я ошибаюсь от dynamicubtotal до значения? я хочу от dynamicubtotal и all prev ('. value') –