【发布时间】:2017-11-06 12:01:06
【问题描述】:
在堆栈的帮助下,我创建了一个包含两个选择菜单 (A + B) 的表单。基于菜单 A 中的选项 -> 菜单 B 中的选项被添加到特定的现有选项之间。为此,我正在使用以下 $ ajax 函数,如下所示
function fetch_new_options(val) {
$.ajax({
type: 'post',
url: 'fetch_new_options.php',
data: {
get_selected_option_id: val
},
success: function (response) {
console.log(response);
elemToReplaceBefore = $("#select_values option[value = '--']");
$(response).insertBefore(elemToReplace);
// elemToReplaceBefore.remove();
}
});
}
它几乎可以工作,问题是每个新选项都被添加而不是被替换。
Menu B
Option B1
Option B2
-----
Option Bxx
Option Bxx
但是当我更改菜单 A 并说新选项是 D1、D2 和 D3 时,它变成了
Menu B
Option B1
Option B2
New option C1
New option C2
New option D1
New option D2
New option D3
Option Bxx
Option Bxx
而不是
Menu B
Option B1
Option B2
New option D1
New option D2
New option D3
Option Bxx
Option Bxx
如何替换新选项而不只是添加? .insertReplace 存在吗?
我是否应该向菜单 B 选项元素添加一个类并使用.replaceWith?
【问题讨论】:
-
有许多教程和 SO 问题来描述整个过程。
-
所以你打算替换但它正在被附加......我正确吗?
-
您要替换的选项的唯一 ID 是什么?或者只是没有身份证
-
对不起,我将我的问题编辑为“希望”让它更清楚一点
-
@MuhammadOmerAslam 我想我找到了一个解决方案,方法是删除文档准备好的选项 ` $(document).ready(function () { console.log("ready!"); // 触发 T&R $ ('#menuA').change(function () { $(".tr_new_option").remove(); ,