Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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,尝试通过循环获取选择框。仅显示一个项目 变量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

尝试通过循环获取选择框。仅显示一个项目

变量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为空


创建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);
});