Javascript 动态创建的Div Change下拉选项
//函数添加一组元素 var-ed=1; 新服务器的功能{ ed++; var newDiv=$“服务器分区:第一个”。克隆; 新部门属性'id',编辑; var-delLink=; newDiv.find'tr:first th'。文本'Server'+ed; newDiv.find'select:first'.attr'id',cat'+ed; newDiv.appenddelLink; $'server'.appendnewDiv; 查找'input:text'.val; web=新数组'CF9'、'CF10'、'CF11'、'ASP.NET'、'PHP'、'CMS'、'JAVA'; db=新数组“MSSQL Express”、“MSSQL Web”、“MSSQL标准”、“MYSQL”; app=新阵列“IMIS”、“终端”、“AD”; 民众选举; $function{ $'cat'+ed.changefunction{ 民众选举; }; }; 函数populateSelect{ cat=$'cat'+ed.val; $'item'.html; 如果cat=='Web'{ web.foreachfunction{ $'item'。追加+t+; }; } 如果cat=='DB'{ db.foreacht函数{ $'item'。追加+t+; }; } 如果cat==“应用程序”{ app.foreachfunction{ $'item'。追加+t+; }; } } 警惕; } //函数删除新添加的元素集 函数deleId{ d=文件; var ele=d.getElementByIdeleId; var parentEle=d.getElementById'server'; parentEle.removechille; //ed-; } 服务器1 技术 选择 网状物 分贝 应用程序 另外 中央处理器? 记忆力 磁盘空间?Javascript 动态创建的Div Change下拉选项,javascript,jquery,html,Javascript,Jquery,Html,//函数添加一组元素 var-ed=1; 新服务器的功能{ ed++; var newDiv=$“服务器分区:第一个”。克隆; 新部门属性'id',编辑; var-delLink=; newDiv.find'tr:first th'。文本'Server'+ed; newDiv.find'select:first'.attr'id',cat'+ed; newDiv.appenddelLink; $'server'.appendnewDiv; 查找'input:text'.val; web=新数组'
您正在使用计数器为服务器动态创建ID,因此它们看起来像$+cat+计数器 问题是您还使用计数器影响populateSelect中的列表,这意味着您只修改上次创建的服务器的列表内容 我对你们项目的了解,以及我能给你们的解决方案 大多数变化都与此有关:
$(function () {
$(document).on("change", '.cat', function () {
populateSelect($(this).val, $(this).attr("id"));
});
});
这是:
function populateSelect(listValue, listID) {
var serverItem = $("#" + listID).closest(".tableServer").find('.item')
cat = $("#" + listID).val();
serverItem.html('');
...
您可以看到,我以这种方式更改了class=item的id=item,克隆的服务器不会复制id=item。
我将数组移动到代码的顶部,以便从每个函数都可以访问
我还将populateSelect函数和$function{移到了新的_服务器函数之外
我将newDiv.find'.item'.html;添加到新的服务器函数中,以不克隆以前选择的选项。
我将class=tableServer添加到表包装器中,以便在populateSelect中动态地将它们作为目标