2012-01-25 16 views
0

私は、次のしている:jquery適切なチェーン?

$("#modal-controls").html(html) 
    .find("#pic_caption").val(data.pic_caption) 
    .find("#pic_desc").val(data.pic_desc); 

は基本的に、私は何か、入力のための検索のHTMLを変更し、その値を変更します。 それは最初のものを変更しますが、2番目の入力を変更することはありません。チェーンを使用して正しく書き込む方法はありますか? 2つの異なるjQueryオブジェクトに分離する必要がありますか?

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

答えて

1

jQuery.fn.end()をご覧ください。チェーンに追加して、一致する要素の前のセットに戻すことができます。

$("#modal-controls").html(html) 
    .find("#pic_caption").val(data.pic_caption).end() //<-- 
    .find("#pic_desc").val(data.pic_desc); 
2

最初find()#pic_captionで現在のチェーンを置くためにあなたの問題があります。

$("#modal-controls").html(html) 
    .find("#pic_caption").val(data.pic_caption).end() 
    .find("#pic_desc").val(data.pic_desc); 
-1

例えば、以前のセレクタチェーンに戻りますend()を使ってあなたのセレクタは、それが最初のものだけに当たっている、試合をループされていません。あなたは、複数のモーダル・コントロールを持っていると仮定すると、このいずれかを試してみてください...あなたのHTMLの構造を仮定し

$("#modal-controls").each(function(index){ 
    $(this).html(html) 
    .find("#pic_caption").val(data.pic_caption) 
    .find("#pic_desc").val(data.pic_desc); 
}); 
1

は、このようなものです:

<div id="modal-controls"> 
    <input type="button" id="pic_caption" value=""> 
    <input type="button" id="pic_desc" value=""> 
</div> 

あなたがにフィルタを返すようにjQueryのend()DOCS)を使用する必要がありますチェンジャー用オリジナルセレクターfind()

$("#modal-controls").html(html) 
    .find("#pic_caption").val(data.pic_caption) 
    .end() 
    .find("#pic_desc").val(data.pic_desc);