appendChild() 在 forEach() 方法中不起作用,即使该元素是 DOM

我有以下功能: -


function processResult(responses) {

        for (i = 0; i < responses.length - 1; i++) {

            row = document.createElement("tr")

            naam = document.createElement("td")

            ema = document.createElement("td")

            tit = document.createElement("td")

            content = document.createElement("td")

            status = document.createElement("td")

            content.classList.add("text-justify")

            var containeris = [naam, tit, content, status];

            naam.innerHTML = responses[i][1].split(" ")[0]

            tit.innerHTML = responses[i][6]

            status.innerHTML = responses[i][11]

            str = "<a href = 'javascript:trigger(" + i + ")'>[Read More]</a>"

            content.innerHTML = responses[i][7].slice(0, 50) + "..." + str

            containeris.forEach(function (el) {

                row.appendChild(el);

            });

            document.getElementById("mytable").appendChild(row)


        }




    }

        function trigger(i) {

            alert(rr[i][7])

        }

status.appendChild(tc)不断给出以下错误: -



Failed to execute 'appendChild' on 'Node': -

parameter 1 is not of type 'Node' at "row.appendChild(el);"


naam,tit,数组“containeris”中的内容工作正常,但是一旦我添加“status”,我就会不断收到上述错误。


问题是,状态是DOM


是一个数组,其中包含多个数组,这些数组的长度为11


,始终是一个字符串


是全局数组


,请帮助我解决这个问题:)<td>responsesresponses[i][11]rr


茅侃侃
浏览 187回答 2
2回答

绝地无双

您最好将变量名称从状态更改为其他名称,因为&nbsp;window.status&nbsp;是保留的例status&nbsp;=&nbsp;document.createElement("div")&nbsp;console.log(typeof&nbsp;status);--编辑工作实例function processResult(responses) {&nbsp; for (i = 0; i < responses.length ; i++) {&nbsp; &nbsp; row = document.createElement("tr")&nbsp; &nbsp; naam = document.createElement("td")&nbsp; &nbsp; ema = document.createElement("td")&nbsp; &nbsp; tit = document.createElement("td")&nbsp; &nbsp; content = document.createElement("td")&nbsp; &nbsp; status1 = document.createElement("td")&nbsp; &nbsp; content.classList.add("text-justify")&nbsp; &nbsp; var containeris = [naam, tit, content, status1];&nbsp; &nbsp; naam.innerHTML = responses[i][1].split(" ")[0]&nbsp; &nbsp; tit.innerHTML = responses[i][6]&nbsp; &nbsp; status1.innerHTML = responses[i][11]&nbsp; &nbsp; str = "<a href = 'javascript:trigger(" + i + ")'>[Read More]</a>"&nbsp; &nbsp; content.innerHTML = responses[i][7].slice(0, 50) + "..." + str&nbsp; &nbsp; containeris.forEach(function(el) {&nbsp; &nbsp; &nbsp; row.appendChild(el);&nbsp; &nbsp; });&nbsp; &nbsp; document.getElementById("mytable").appendChild(row)&nbsp; }}processResult([&nbsp; Array(12).fill('Test')])#mytable {&nbsp; border: 1px solid black;&nbsp; padding: 1rem;}<table id="mytable"></table>

米脂

我想如果你在循环中声明所有变量(var row = document...)(或者,如果你的味道允许的话,可以让/康斯特)我确实调试了代码,并且我被迫声明所有变量,并且它似乎工作正常(您提到的行上没有js错误)processResult([&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'abc',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'def',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'ghi',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'jkl',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'mno',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'pqr',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'stu',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'vwx',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 'yz1',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '234',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '567',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; '890',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; &nbsp; ]);function processResult(responses) {&nbsp; &nbsp; debugger;&nbsp; &nbsp; for (var i = 0; i < responses.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; var row = document.createElement('tr');&nbsp; &nbsp; &nbsp; &nbsp; var naam = document.createElement('td');&nbsp; &nbsp; &nbsp; &nbsp; //var ema = document.createElement('td');&nbsp; &nbsp; &nbsp; &nbsp; var tit = document.createElement('td');&nbsp; &nbsp; &nbsp; &nbsp; var content = document.createElement('td');&nbsp; &nbsp; &nbsp; &nbsp; var status = document.createElement('td');&nbsp; &nbsp; &nbsp; &nbsp; content.classList.add('text-justify');&nbsp; &nbsp; &nbsp; &nbsp; var containeris = [naam, tit, content, status];&nbsp; &nbsp; &nbsp; &nbsp; naam.innerHTML = responses[i][1].split(' ')[0];&nbsp; &nbsp; &nbsp; &nbsp; tit.innerHTML = responses[i][6];&nbsp; &nbsp; &nbsp; &nbsp; var tc = document.createElement('span');&nbsp; &nbsp; &nbsp; &nbsp; tc.textContent = responses[i][11];&nbsp; &nbsp; &nbsp; &nbsp; status.appendChild(tc);&nbsp; &nbsp; &nbsp; &nbsp; var str = "<a href = 'javascript:trigger(" + i + ")'>[Read More]</a>";&nbsp; &nbsp; &nbsp; &nbsp; content.innerHTML = responses[i][7].slice(0, 50) + '...' + str;&nbsp; &nbsp; &nbsp; &nbsp; containeris.forEach(function(el) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; row.appendChild(el);&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById('mytable').appendChild(row);&nbsp; &nbsp; }}<table id="mytable"></table>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript