2016-12-20 23 views
1

変数を使用してクラスなどを直接選択するにはどうすればよいですか?jquery変数を使用して関数を呼び出す

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(); 

このメソッドを実行するには$tbodyを使用します。構文は何ですか?

答えて

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

説明:

jquery関数に2番目のパラメータとして$ tbodyを渡すと、ドキュメント全体ではなくその要素のスコープ内でのみ検索されます($ tbody)。

+0

これは$( 'a.collapse'、$ tbody).hide(); ? – FirstByte

+0

はい、本当に申し訳ありませんが、私は答えを更新する – xszaboj

+1

説明を追加してください... –

4

$tbody jQueryオブジェクトのfind()メソッドを使用できます。あなたはコールのワンライナーにするだけでなく、複数のセレクタを適用できることに注意してください:あなたはfind()メソッドを使用することができます

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

を - 以下のコードを参照してください。

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

セレクタについて読んだことは、.find()の代わりに直接選択を使用する方が良いのでしょうか? – FirstByte

0

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

は、それがとにかく$ tbody.find()に変わったのボンネットの下に、きれいに見えますが、私はこの上に読んでてきました。ですから、より良い答えは、findメソッドを使って始めることです - そして、Roryが指摘するように、複数選択することもできます。

関連する問題