基本上我在這裏有一個按鈕,它將一個新的列表項添加到一個無序列表中。在這個列表項中有一個下拉框(.formSelector),當更改觸發ajax調用以獲取同一列表項中另一個下拉框(.fieldSelector)的值時。jquery - DOM遍歷問題
的問題是在這條線:
$(this).closest(".fieldSelector").append(
如果我正確的第二個框將更新其更改爲
$(".fieldSelector").append(
。這樣做的問題是,當我有多個列表項時,它會使用類fieldSelector更新頁面上的每個下拉框,這是不可取的。我如何遍歷DOM來選擇當前列表項中的fieldSelector?任何幫助是極大的讚賞。
完整代碼:
$("button", "#newReportElement").click(function() {
$("#reportElements").append("<li class=\"ui-state-default\"> <span class=\"test ui-icon ui-icon-arrowthick-2-n-s \"></span><span class=\"ui-icon ui-icon-trash deleteRange \"></span> <select name=\"form[]\" class=\"formSelector\"><? foreach ($forms->result() as $row) { echo "<option value='$row->formId'>$row->name</option>"; }?></select><select class=\"fieldSelector\" name=\"field[]\"></select></li>");
$(".deleteRange").button();
$('.formSelector').change(function() {
var id = $(this).val();
var url = "<? echo site_url("report/formfields");?>" + "/" + id;
var atext = "ids:";
$.getJSON(url,
function(data){
$.each(data.items, function(i,item){
$(this).closest(".fieldSelector").append(
$('<option></option>').val(item.formId).html(item.formLabel)
);
});
});
});
return false;
});
完美。謝謝! – David 2010-04-25 19:08:18
很高興爲你效勞。乾杯! – Anurag 2010-04-25 22:10:12