Javascript 选择迭代中未显示的框
尝试通过循环获取选择框。仅显示一个项目 变量nodesList=['node1','node2','node3']; var-select=$; $,{value:'node1',text:'node1'}.appendToselect; $,{value:'node2',text:'node2'}.appendToselect; $nodesList.eachfunctioniter,elem{ alertelem; var trEle=$document.createElementtr; trEle.addClass+iter; var tdEle=$document.createElementtd; $tdEle.appendselect; 附属物树; $'addto_tb'。附录三; $$$'addto_tb'.find.+iter.find'select'.valelem; }; 在这种情况下,应提供3个选择框。但只有一个显示。当我发出警报时,我可以看到所有三个选择框都出现了,但只有一个框显示出来。当我检查时,我可以看到前两个s为空Javascript 选择迭代中未显示的框,javascript,jquery,html,Javascript,Jquery,Html,尝试通过循环获取选择框。仅显示一个项目 变量nodesList=['node1','node2','node3']; var-select=$; $,{value:'node1',text:'node1'}.appendToselect; $,{value:'node2',text:'node2'}.appendToselect; $nodesList.eachfunctioniter,elem{ alertelem; var trEle=$document.createElementtr; t
创建select时,只有一个实例,因此每个循环实际上都只是将其移动到下一个tr 添加用于追加该项的.clone方法
$(tdEle).append(select.clone());
创建select时,只有一个实例,因此每个循环实际上都只是将其移动到下一个tr 添加用于追加该项的.clone方法
$(tdEle).append(select.clone());
循环只是将select元素从一个td移动到下一个td。每次都通过变量引用相同的select,因此当运行$tdEle.appendselect时;您将从当前位置选择变量引用的元素,并将其附加到新位置。您需要为循环的每个迭代声明一个新的、单独的选择项:
var nodesList = ['node1','node2','node3'];
$(nodesList).each(function(iter,elem){
alert(elem);
var select = $('<select/>');
$('<option />', {value: 'node1', text: 'node1'}).appendTo(select);
$('<option />', {value: 'node2', text: 'node2'}).appendTo(select);
var trEle = $(document.createElement("tr"));
trEle.addClass(" "+iter);
var tdEle = $(document.createElement("td"));
$(tdEle).append(select);
trEle.append(tdEle);
$('#addto_tb').append(trEle);
$($($('#addto_tb').find("."+iter)).find('select')).val(elem);
});
循环只是将select元素从一个td移动到下一个td。每次都通过变量引用相同的select,因此当运行$tdEle.appendselect时;您将从当前位置选择变量引用的元素,并将其附加到新位置。您需要为循环的每个迭代声明一个新的、单独的选择项:
var nodesList = ['node1','node2','node3'];
$(nodesList).each(function(iter,elem){
alert(elem);
var select = $('<select/>');
$('<option />', {value: 'node1', text: 'node1'}).appendTo(select);
$('<option />', {value: 'node2', text: 'node2'}).appendTo(select);
var trEle = $(document.createElement("tr"));
trEle.addClass(" "+iter);
var tdEle = $(document.createElement("td"));
$(tdEle).append(select);
trEle.append(tdEle);
$('#addto_tb').append(trEle);
$($($('#addto_tb').find("."+iter)).find('select')).val(elem);
});