2011-07-28 16 views
0

要素やクラスのIDなど、さまざまな属性を取得してから、その要素を選択して何かをしていることがよくあります。私は、例えば、今何idを取得してその要素を選択する - jQuery

は次のとおりです。

var id = $(this).closest(".item").attr('id'); 
    $('#'+id).hide(); 

は、これを行うための最善の方法を「#」を使用してIDを含めていますか?おそらくこれらのアクションを連鎖させる方法はありますか?

ありがとうございました!

答えて

2

あなたはまた、最後にIDが必要な場合、あなたはこのようにそれらをチェーンすることができます:

var id = $(this).closest(".item").hide().attr('id'); 
+0

ありがとう、これはそれでした。 – dzm

1

あなたは、あなたが上記そうであるように要素を操作するために起こっている場合は、より柔軟な方法は、次のようになります。

var item = $(this).closest(".item"); 
item.hide(); 
+0

おかげで、これは同様に良好な場合の例です! – dzm

0

何も問題はありません。あなたはそれを1行にすることができるかもしれませんが、なぜですか?

var id = $(this).closest(".item").hide().attr('id'); 
0

はあなただけ

$(this).closest(".item").hide(); 

IDを取得し、その後、別のjQueryの選択はこれより遅いことになるだろう実行を行うことができない理由が理由です。

0

IDを取得するにはアイテムを選択しています。あなたがしなければならないのは、それがhide()です:

ただ、その後、.ATTR(「ID 『)が働くだろう選択せず(この).closest(』アイテム。」)$を使用しているかどうかについての興味があるだけ
$(this).closest(".item").hide() 
0

見つかった最も近い要素を隠す。それはコードの最後の行を保存し、コードの1行にロールバックします。 jQueryコマンドは連鎖可能です。したがって、.closest()関数が目的の要素を返すように、hideコマンドを同じコード行から拡張できるだけです。

例:

$(この).closest( "アイテム。":私が正しくあなたを理解しましたが、あなたはこのような何かを探しているなら、

$(this).closest(".item").hide(); 
関連する問題