2016-06-07 1 views
0

Ich habe jede innere wieJQuery - Wie die dies für bekommen verschachtelt jede

$('a[id^="Page"]').each(function() { 
    if ($(this).attr("id") == pageId) { 
    $('[id="' + pageId + '"]"').each(function() { 
     // code here 
     }); 
    } 
}); 

Wie das aktuelle Element zugreifen, da this aus früheren each ist?

Danke!

+1

'$ this = this'. – Mohammad

+1

cache 'this' in einer Variablen als' $ this = this' –

+0

Du brauchst kein inneres 'each', da die IDs eindeutig sein müssen und' this' sich bereits darauf bezieht? Können Sie den Wettbewerbscode teilen? – Satpal

Antwort

0

Sie die zweite Rückruf verwenden können Argument, um das Element wie folgt zu erhalten:

$('a[id^="Page"]').each(function (index, element) { 
     if ($(element).attr("id") == pageId) { 
        $('[id="' + pageId + '"]"').each(function (j, pageElment) { 
         console.log(element); 
         console.log(pageElment); 
        }); 
     } 
}); 
-1

Nur this zu Variablen speichern und als Sie können es verwenden:

$('a[id^="Page"]').each(function() { 
    var $that = $(this); 

    if ($that.attr("id") == pageId) { 
      $('[id="' + pageId + '"]"').each(function() { 
       console.log($that.data('val') === $(this).data('val')); 
      }); 
    } 
}); 

Wenn Sie Ihre ID als Nummer (zB id="12345") haben, als read this

0

Erstens können Sie die folgende Callback-Signatur verwenden, um die Verwendung von this zu beseitigen:

.each(function(outerIndex, outerElement) { 
    .each(function(innerIndex, innerElement) { 
     // Do stuff with outerElement... 
    }); 
}); 

Dies ist besser lesbar als die Verwendung von this Tautologie.

Allerdings ist es in Ihrem Beispiel nicht notwendig, die zweite each(... in Ihrem ersten each(... überhaupt zu verwenden, da Sie für genaue ID suchen. Und wenn Sie die pageId im Voraus kennen - brauchen Sie keine each(.... Statt nur die Wähler-ID verwenden:

$('#' + pageId).// Do your stuff 
0

this standardmäßig bezieht sich auf den Kontext, der die Funktion ruft. Wenn Sie .each für ein oder mehrere Elemente aufrufen, bezieht sich this innerhalb der Funktion immer auf das aktuelle Element.