0

each次の条件でjqueryの機能のいくつかの要素をスキップするにはどうすればよいですか:

var number_of_td = 0;
$('td').each(function() {
    if (number_of_td == 0) {
       if ($(this).attr('id') == "1") {
           //skip the next three elements:
           //something like: $(this) = $(this).next().next().next();
        }
    }
    else if (number_of_td == 1) {
        if ($(this).attr('id') == "2") {
           //skip the next two elements
        }
    }
    else if (number_of_td == 2) {
        if ($(this).attr('id') == "3") {
           //skip the next element
        }
    }
    else if (number_of_td == 3) {
        if ($(this).attr('id') == "4") {
           //skip the next element
        }
    }
    else {
        number_of_td++;
        if (number_of_td == 4) {
             number_of_td = 0;
        }
    }
});

例えば:

<td attr="1"></td>
<td attr="6"></td>
<td attr="7"></td>
<td attr="9"></td>
//-------------------
<td attr="2"></td>
<td attr="5"></td>
<td attr="3"></td>
<td attr="6"></td>
//-------------------
<td attr="7"></td>
<td attr="2"></td>
<td attr="8"></td>
<td attr="6"></td>

4 番目の条件のいずれかが存在する場合は、 で td 要素までスキップしattr=2ます。

この例では、最初の td 属性が 1 であるため、attr=2 までスキップし、他の要素 (attr=6,7,9) をチェックしません。

2 は 1 と等しくなく、5 は 2 と等しくなく、3 は 3 と等しくないため、attr=7 までスキップします。

私の例を理解していただければ幸いです。

どんな助けでも大歓迎です!

4

1 に答える 1

2

カウンター変数を追加し、カウンターがゼロに達していない場合はループをスキップします。

$('td').each(function() {
    if (+$(this).data('counter')>0) { 
        $(this).data('counter', $(this).data('counter')-1); // decrement counter
        return; // continue to next loop iteration
    }
    if (number_of_td == 0) {
       if ($(this).attr('id') == "1") {
           $(this).data('counter', 2); // skip two more after this one
           return; // skip to next loop iteration
        }
    }
于 2013-10-02T14:58:37.970 に答える