2016-12-20 1 views
1

Wie kann ich Klassen usw. mithilfe einer Variablen direkt auswählen?Funktionen aufrufen, die eine jquery-Variable verwenden

var $tbody = $(".tbl-locations-body"); 

$(".tbl-locations-body a.collapse").hide(); 
$(".tbl-locations-body tr.child-row").hide(); 
$(".tbl-locations-body .container").first().hide(); 
$(".tbl-locations-body .tab-content").hide(); 

Ich möchte $tbody verwenden, um die Verfahren durchzuführen. Was ist die Syntax?

Antwort

2
var $tbody = $(".tbl-locations-body"); 
$("a.collapse", $tbody).hide(); 
// etc... 

Erläuterung:

Wenn Sie $ tbody als zweiten Parameter in die jquery-Funktion übergeben, suchen Sie nur in einem Bereich dieses Elements ($ tbody) und nicht im gesamten Dokument.

+0

Wäre das $ ('a.collapse', $ tbody) .hide(); ? – FirstByte

+0

ja, sorry, ich werde die Antwort aktualisieren – xszaboj

+1

Bitte fügen Sie eine Erklärung ... –

4

Sie könnten die find()-Methode aus dem 0Query-Objekt $tbody verwenden. Beachten Sie, dass Sie auch mehrere Selektoren anwenden können, um die Anrufe einen Einzeiler zu machen:

var $tbody = $(".tbl-locations-body"); 
$tbody.find('a.collapse, tr.child-row, .container:first, .tab-content').hide(); 
1

Sie können die find() Methode - siehe Code unten:

var $tbody = $(".tbl-locations-body"); 

$tbody.find("a.collapse").hide(); 
$tbody.find("tr.child-row").hide(); 
$tbody.find(".container").first().hide(); 
$tbody.find(".tab-content").hide(); 
+0

Von dem, was ich über Selektoren gelesen habe, ist es nicht besser, direkte Auswahl anstelle von .find() zu verwenden? – FirstByte

0

Ich habe auf der Lektüre dieses und obwohl

var $tbody = $(".tbl-locations-body"); 
$("a.collapse", $tbody).hide(); 

sauberer aussieht, unter der Haube zu $ ​​tbody.find() sowieso es hat sich geändert. Die bessere Antwort ist also, mit der find-Methode zu beginnen - und wie Rory darauf hingewiesen hat, können Sie auch mehrere auswählen.

Verwandte Themen