javascript - 使用 javascript 创建 `select` 元素

标签 javascript html dom

我有一个 html 表,我正在动态创建它填充所有内容接受选择元素我尝试了所有方法但它不起作用请看一下。

我的表格完整代码:-

function getreferData(dataArray) {
    let selectArray = ["Intvw Scheduled", "Selected", "Rejected", "On Hold"];
    var ray = dataArray.splice(0, 1)
    let table = document.getElementById('thead1');
    var tableHeaderRow = document.createElement("tr");
    table.appendChild(tableHeaderRow);
    for (i = 0; i < ray[0].length; i++) {
        var tableHeader = document.createElement("th");
        tableHeaderRow.appendChild(tableHeader);
        tableHeader.innerHTML = ray[0][i];
    }


    let tbody = document.getElementById('perf');
    for (var i = 0; i < dataArray.length; i++) {
        let row = document.createElement("tr")
        for (var j = 0; j < dataArray[i].length; j++) {
            if (j == 4) {
                let col = document.createElement("td")
                var a = document.createElement("a");
                a.setAttribute("class", "light-blue-text text-light-blue")
                a.href = dataArray[i][j];
                var node = document.createTextNode("Click here")
                a.appendChild(node)
                col.appendChild(a)
                row.appendChild(col)
            } else if (j == 6) {
                var col = document.createElement("td");
                col.appendChild(createDropdown("status-" + dataArray[i]));
                var lbl = document.createElement("label");
                lbl.setAttribute("for", "status-" + dataArray[i]);
                col.appendChild(lbl)
                row.appendChild(col)
            } else if (j == 7) {
                let col = document.createElement("td")
                var a2 = document.createElement("a");
                a2.setAttribute("class", "btn blue-grey darken-3 waves-effect waves-light");
                a2.setAttribute("onclick", "editrefrecord(\"" + dataArray[i] + "\")");
                a2.setAttribute("style", "color: white");
                var node2 = document.createTextNode("UPDATE");
                a2.appendChild(node2);
                col.appendChild(a2);
                row.appendChild(col)
            } else {
                let col = document.createElement("td")
                col.innerText = dataArray[i][j]
                row.appendChild(col)
            }
        }
        tbody.appendChild(row);
    }

    function createDropdown(id) {
        //create a radio button

        var fragment = document.createDocumentFragment();
        var select = document.createElement('select');
        select.setAttribute("id", id);
        selectArray.forEach(function (r) {
            select.options.add(new Option(r, r));
        });
        fragment.appendChild(select);
        return fragment;
    }
}

你唯一想关注的是:-

let selectArray = ["Intvw Scheduled", "Selected", "Rejected", "On Hold"];

else if (j == 6) {
    var col = document.createElement("td");
    col.appendChild(createDropdown("status-" + dataArray[i]));
    var lbl = document.createElement("label");
    lbl.setAttribute("for", "status-" + dataArray[i]);
    col.appendChild(lbl)
    row.appendChild(col)
}

和创建选择元素的函数:-

function createDropdown(id) {
    //create a radio button

    var fragment = document.createDocumentFragment();
    var select = document.createElement('select');
    select.setAttribute("id", id);
    selectArray.forEach(function (r) {
        select.options.add(new Option(r, r));
    });
    fragment.appendChild(select);
    return fragment;
}

目前我的 Html 表格看起来像这样,如果您将看到 Status is not populating 选择选项:- enter image description here

Inspect 元素显示其已创建但不可见:-

enter image description here

最佳答案

你错过了添加选项

let selectArray = ["Intvw Scheduled", "Selected", "Rejected", "On Hold"];
    
    var selectList = document.createElement("select");
    selectList.id = "mySelect";
    myParent.appendChild(selectList);
    
    //Create and append the options
    for (var i = 0; i < selectArray.length; i++) {
        var option = document.createElement("option");
        option.value = selectArray[i];
        option.text = selectArray[i];
        selectList.appendChild(option);
    }

关于javascript - 使用 javascript 创建 `select` 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63296694/

相关文章:

javascript - 使用 D3 从休息服务获取数据

javascript - 如何将 IFrame 高度更改为其内容的 100%?

Java DOM 通过 ID 获取元素

javascript - 是否可以获取不在 DOM 中的图像的高度/宽度?

javascript - Vanilla JavaScript 代码在控制台中运行,但不能在 (greasemonkey) 脚本中运行

javascript - AngularJS : Appending the same structure on the click of each item

javascript - 页面渲染时隐藏 Knockout JS 的提醒

javascript - Jquery div 正确打开/关闭隐藏的 div

javascript - 如何在javascript中获取<td>中的子节点

html - CSS - 是什么导致了这个水平滚动条?