Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.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 将选择对象动态添加到表中_Javascript_Jquery_Html - Fatal编程技术网

Javascript 将选择对象动态添加到表中

Javascript 将选择对象动态添加到表中,javascript,jquery,html,Javascript,Jquery,Html,我试图生成两个下拉列表(元素),并将它们作为新行附加到表中 这两个列表是通过读取已存在的select元素创建的 var sfp_opt = document.getElementById('sfp_opt'); var sfps = []; for (var i = 0; i < sfp_opt.children.length; ++i) { var child = sfp_opt.children[i]; if (child.tagName == 'OPTION') sf

我试图生成两个下拉列表(元素),并将它们作为新行附加到表中

这两个列表是通过读取已存在的select元素创建的

var sfp_opt = document.getElementById('sfp_opt');
var sfps = [];
for (var i = 0; i < sfp_opt.children.length; ++i) {
    var child = sfp_opt.children[i];
    if (child.tagName == 'OPTION') sfps.push(child.value);
}
counter += 1;
var s1 = $("<select></select>");
s1.id = 'SfpSelId' + counter;
s1.name = 'SfpSelName' + counter;

for(var val in sfps) {
    $("<option />", {value: val, text: sfps[val]}).appendTo(s1);
}
var sfp_opt=document.getElementById('sfp_opt');
var sfps=[];
对于(变量i=0;i
类似地,我正在创建另一个名为s2的select元素。 我想在单独的
中附加这两个列表,但要在同一行中附加,即
。 所以我尝试了这些方法:

(一)
$(“#sfp#u det tbody”)。附加(“”+s1+“”+s2+“”)

由于不正确,在UI.s1.val()上显示为[object object]也没有帮助

2) 我可以使用.wrap()函数。这适用于一个列表

$("#sfp_det tbody").append($(s1).wrap('<tr><td></td></tr>'));
$(“#sfp#u det tbody”).append($(s1).wrap(“”));
我的问题是,如何以类似的方式附加两个列表,以使其格式相当于
list1(s1)list2(s2)
,其中s1和s2是下拉列表或选择元素?是否可以使用.wrap()执行此操作?
如果没有,有人可以建议我正确的语法来完成这项工作吗

您可以使用以下内容:

    var select1 = $('<select>');
    var select2 = $('<select>');

    wrapWithTd(select1).add(wrapWithTd(select2)).wrapAll('<tr>');        

    $('table tbody').append(select1.parents('tr'));

    function wrapWithTd(el) {
        el.wrap('<td>');
        return el.parent();
    }
var select1=$('');
变量select2=$('');
wrapWithTd(select1).add(wrapWithTd(select2)).wrapAll(“”);
$('table tbody').append(select1.parents('tr'));
函数wrapWithTd(el){
el.包装(“”);
返回el.parent();
}
见:

如果我理解正确,您可以使用wrapAll。我如何使用它?我已经试过了,但它不起作用:
$(s1).wrap(“”)$(s2)包裹(“”)$(“#sfp#u det tbody”).append($('.a1').wrapAll('')我做错什么了吗?我更新了我的答案(js链接)。非常感谢。这是有效的:)