JQuery - захватить все следующее () до определенного количества - PullRequest
0 голосов
/ 31 января 2012

Хорошо, в основном, у меня есть элемент, который я получаю, который является элементом <tr>.

Но если я найду элемент <td> с размахом строк, превышающим 1, в любом из элементов <tr>, я должен исключить эти элементы <tr>, начиная с $ ("td"). parent (), где rowspan> 1, и мне нужно исключить все остальные элементы <tr> вплоть до количества rowspan в пределах each()

Так что-то вроде этого:

$("td").each(function{
if ($(this).attr('rowspan') > 1)
    var curRowspan = $(this).attr('rowspan');
    // So now rowspan can equal 2, 3, 4, 5, and higher.
    // Now I need to exclude the NEXT <tr> elements based on the quantity of rowspans.
    // So if the rowspan = 2, than I need to exclude $(this).parent() and $(this).parent().next() which seems easy enough, but I need this to work on more than 2 rowspans also.  Needs to exclude the current <tr> element and all <tr> elements after, until it reaches the rowspan quantity indicated by curRowspan.
    // HOW TO DO THIS and return false out of the each() for each of these `<td>` elements within that quantity of `<tr>` elements indicated by the rowspan of a `<td>` element???
});

1 Ответ

0 голосов
/ 31 января 2012

Вы можете добавить класс, чтобы указать, что вы игнорируете эту строку.Мне кажется, что есть лучший способ оптимизировать этот селектор. Срез выглядит многообещающе.

http://jsfiddle.net/UG35Q/2/

$("td").each(function() {
    if ($(this).attr('rowspan') > 1) {        
        var curRowspan = $(this).attr('rowspan');
        $(this).parent().nextAll().slice(0, curRowspan).addClass('markRow');
    }
});
...