2012-01-25 47 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);