0

我试图找到持有选择框的 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上放了一个非常简化的版本,只是为了说明附加选择框的物理位置。

4

0 回答 0