2017-06-12 1 views
0

Ich habe Filter, wo ich die Klasse aktiv bei Klick umschalten. Beim Klicken möchte ich auch die Links durchlaufen, bei denen die Klasse aktiv ist, und ein neues Array aus dem Text dieser Links erstellen. Aber ich bekomme nichts in der Konsole, wenn ich mich durchschlinge. Dies ist der Code:Abrufen von Text von allen Links, die die gleiche Klasse haben

$('.filter-button').click(function() { 

    $(this).toggleClass('active'); 

    var activeTags = $('filter-button.active'); 

    $(activeTags).each(function() { 
    var tags[] = $(this.text()); 
    }); 

    console.log(tags); 
}); 

Was mache ich falsch?

+0

var Active = $ ('filter-button.active'); Wenn der Filter-Button eine Klasse ist, fehlt ein Punkt. – tech2017

+0

Sie haben den Punkt auf Ihrem Selektor vergessen: 'filter-button.active'. Auch activesTags ist bereits ein jquery-Objekt, so dass Sie '$ (activeTags)' nicht brauchen, Sie können einfach 'activeTags.each' ausführen und schließlich setzen Sie die Tags var in jedem davon zurück und es ist lokal in dieser Schleife so wird es nicht existieren, wenn Sie versuchen, es zu loggen – Pete

+0

[Bitte setzen Sie keine Tags in Frage Titel] (https://stackoverflow.com/help/tagging) – Liam

Antwort

1

Sie erstellen für jedes Element eine neue tags Variable, lokal zur each() Funktion. Das wird weggeworfen, wenn die Funktion beendet wird.

Ihre äußere console.log() versucht, den Wert von etwas aufzulisten, das nicht existiert (da wir nicht mehr innerhalb der each()-Funktion sind).

Erstellen und Anhängen an ein Array außerhalb voneach():

$('.filter-button').click(function() { 
 

 
    $(this).toggleClass('active'); 
 

 
    var activeTags = $('.filter-button.active'); 
 
    var tags = []; 
 

 
    $(activeTags).each(function() { 
 
    tags.push($(this).text()); 
 
    }); 
 

 
    console.log(tags); 
 
});
.active { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button class=filter-button>1</button> 
 
<button class=filter-button>2</button> 
 
<button class=filter-button>3</button> 
 
<button class=filter-button>4</button> 
 
<button class=filter-button>5</button>

+0

Vielen Dank für die Hilfe! – Leff

Verwandte Themen