我在页面上附加附加输入字段时遇到问题,每个附加输入字段在附加时也有 jquery 代码来附加与它们相关的进一步选择框。基本的html结构如下:
<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>
下面的代码确实附加了选择框,但格式不正确。
$(document).ready(function() {
//$('#loader').hide();
$('.parent').livequery('change', function() {
var div = $(".parent").closest("div").attr("id");
$(this).nextAll('.parent').remove();
$(this).nextAll('input').remove();
$('#' + 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;
});
});
function finishAjax(div, response){
$('#loader').remove();
$('#'+div).append(unescape(response));
}
get_chid_categories.php 只包含sub_category
盒子的代码,其内容由传递给它的 parent_id 确定。
我有另一个附加函数,它添加了show_sub_categories
, sub_cat_'num' 和搜索类别选择框。
页面上的所有内容都适用于第一个附加,即search_cateogry
, sub_category 框和加载 gif 位置正确。我的问题是,随着后续的附加.show_sub_categories
,当 search_category 框更改为在我上面的代码中运行“更改”功能时,加载程序 gif 和相关的sub_category
选择框被附加到第一个div
. 我一生无法理解为什么它仍然这样做,因为附加到页面第二个的 search_category 框肯定位于,附加的<div id="sub_cat_2">
第三个搜索类别框将在#sub_cat_3
etc 等中,因此当 div 被定义时......
var div = $(".parent").closest("div").attr("id");
... div
id 也应该是#sub_cat_2
,然后肯定意味着加载器 gif 和sub_category
选择框都将正确附加在我的<div id="sub_cat_2">
. 如前所述,目前格式化完全是奇怪的,因为无论进行了多少附加,所有内容都附加到第一个div
(#sub_cat_1
)。请帮忙,我把头发扯掉了!威利。
自从最初发布这个问题以来,我已经设法定义div
并使用最接近来获取div
选择框所在的名称。