Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态创建的Div Change下拉选项_Javascript_Jquery_Html - Fatal编程技术网

Javascript 动态创建的Div Change下拉选项

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=新数组'

//函数添加一组元素 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 技术 选择 网状物 分贝 应用程序 另外 中央处理器? 记忆力 磁盘空间?
您正在使用计数器为服务器动态创建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中动态地将它们作为目标