我试图找到持有选择框的 div 的名称,然后将此 div 放入我的 jQuery 代码中其他地方使用的变量中,但似乎不起作用。另一段代码是在页面上附加额外的 div,这些在其中具有类 .parent 的选择框。不管我附加了多少额外的 div,下面的代码总是附加到添加的第一个 div,即使通过浏览器检查 div 结构按预期工作。我是 jQuery 新手,所以不知道我是否遗漏了一些明显的东西,但我很确定每次更改 .parent 元素时都应该重新定义下面的变量 div ,因为它是变量定义的一部分。当我运行警报只是为了检查变量名时,它总是被定义为 sub_cat_1。这对于第一个附加的 div 类 show_sub_categories 是正确的,但此后它应该是 sub_cat_2、sub_cat_3 等递增。如前所述,选择框肯定位于页面上正确的 div 中,所以我只能假设我在下面的这段代码中遗漏了一些简单的东西。(底部的基本html供参考)
$('.parent').livequery('change', function () {
var div = $(".parent").closest("div").attr("id");
$(this).nextAll('.parent').remove();
$(this).nextAll('input').remove();
alert(div);
$('#' + div).append('<img src="images/system/loader2323.gif" style="float:left" id="loader" alt="" />');
$.post("get_chid_categories.php", {
parent_id: $(this).val(),
}, function (response) {
setTimeout(function () {
finishAjax(div, response);
}, 400);
});
return false;
});
这只是为了向您展示被附加的 div 的基本结构。
<p id="add_field"> … </p>
<div class="show_sub_categories">
<div id="sub_cat_1">
<select class="parent" name="search_category"> … </select>
<select class="parent" name="sub_category"> … </select>
</div>
</div>
<div class="show_sub_categories">
<div id="sub_cat_2">
<select class="parent" name="search_category"> … </select>
<select class="parent" name="sub_category"> … </select>
</div>
</div>
我在http://www.0urs.com/fiddle/experience1.php上放了一个非常简化的版本,只是为了说明附加选择框的物理位置。