我尝试找到包含选择框的div的名称,然后将此div放入我的jQuery代码中其他位置使用的变量,似乎不起作用。另一段代码是在页面上添加额外的div,这些div在其中包含类.parent的选择框。然而,我添加了许多额外的div,下面的代码总是附加到第一个div添加,即使通过浏览器检查div结构按预期工作。我是jQuery的新手,所以不知道我是否遗漏了一些明显的东西,但我很确定下面的变量div应该每次重新定义.parent元素被更改,因为它是变量定义的一部分。当我为了检查变量名而运行警报时,它总是被定义为sub_cat_1。这对于第一个附加的show_sub_categories div类是正确的,但此后它应该是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添加了一个非常简化的版本,只是为了说明附加选择框的物理位置。