foo = foo.find('.dropdown-toggle').html(_new + '<b class="caret"></b>');
使用这一行,您将获得两个 div,因此您更改了两个值(如果该值是从下拉列表中选择的)。
要正确恢复选定的值:
function modified(_select) {
console.log("modify");
foo = $('#box').html();
foo = $(_select).html(foo);
// iterate on collection to restore selected value from selection tag;
foo.filter("div[selection]").each(function(i, v){
var selected = $(v).attr('selection');
$(v).find('.dropdown-toggle').html(selected + '<b class="caret"></b>');
});
}
然后,需要检查是否有任何 parentDiv 具有 [selection] attr:
if($(y).filter("div[selection]").length > 0){
return modified(y);
}
http://jsfiddle.net/b7F6x/50/