2012-01-25 52 views
0

我有以下幾點:jquery正確的鏈接?

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

基本上,我改變的東西HTML,搜索輸入和改變它們的值。 它改變了第一個,但沒有繼續改變第二個輸入,我將如何着手使用鏈接正確編寫它?或者我必須把它分成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當前鏈。使用end()返回到以前的選擇器鏈,如

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

您選擇不通過匹配循環,它只是打了第一個。試試這個假設你有多個模式,控制...

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

假設你的HTML結構是這樣的:

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