2012-01-25 1 views
0

У меня есть следующие:jquery надлежащая цепочка?

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

В принципе, я изменить HTML-то, искать входы и изменять их значения. он меняет 1-й, но не переходит к изменению второго входа. Как я буду правильно его писать, используя цепочку? или я должен отделить его от двух разных объектов 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^