【发布时间】:2021-01-17 04:48:28
【问题描述】:
我正在尝试制作一个动态多选选项下拉菜单。下拉列表中选项元素的文本来自我正在获取的数据库。我希望表中的每一行的最后一列都包含这个多选选项下拉菜单。现在,结果是它跳过每一行,并且仅在最后一行显示所有选项多次(与行数一样多)。因此,不是在每一行中显示,而是每一行都是空的,除了最后一行,并且值都显示在最后一行中。此外,奇怪的是它在表格的右侧创建了空白区域,就像它创建新列一样。我附上了一张图片来帮助形象化。
如何在每一行中正确显示选项以及如何使其成为多选下拉列表,如果用户单击其中一个选项,该选项将添加到影响区域部分。
谢谢。
图片:Image of how it currently looks
Javascript:
//Get Resources and corresponding information and display it in a table
function getResources(){
fetch("______", {
}).then(data => {
var table = document.getElementById("productivity-table");
for(var i=0; i < data.length; i++){
var row = table.insertRow(table.rows.length - 1);
var cell3 = row.insertCell(2);
cell3.classList.add("table-data");
//Cell3 - Create ul and li
var impact_ul = document.createElement("ul");
var impact_li = document.createElement("li");
impact_li.innerHTML = data[i].entity;
impact_li.setAttribute("style", "list-style-type:none");
//Add delete button row
var delete_span = document.createElement("span");
delete_span.className = "delete";
delete_span.innerHTML = "×"
impact_li.appendChild(delete_span);
impact_ul.appendChild(impact_li);
cell3.appendChild(impact_ul);
//Cell5 - Create department dropdown
var dep_dropdown = document.createElement('select');
console.log("dep dropdown", dep_dropdown);
//dep_dropdown.length = 0;
let dep_default = document.createElement('option');
dep_default.text = 'Select Department';
dep_default.disabled = true;
dep_dropdown.add(dep_default);
dep_dropdown.selectedIndex = 0;
fetch("______", {
}).then(data =>{
for(var i=0; i < data.length; i++){
var cell5 = row.insertCell(4);
cell5.classList.add("table-data");
var dep_option = document.createElement('option');
dep_option.text = data[i].dept_name;
dep_option.value = data[i]._id;
dep_dropdown.appendChild(dep_option);
cell5.appendChild(dep_dropdown);
}
}).catch(function(err) {
console.log('Fetch problem: ' + err);
});
}
})
}
【问题讨论】:
-
这个链接有帮助吗? stackoverflow.com/questions/27673937/…
标签: javascript html jquery css