【发布时间】:2021-11-09 05:15:09
【问题描述】:
下面的代码sn-p有问题。
for (var i=0;i<data.parlist.length;i++){
var inp = document.createElement("input")
var label = document.createElement("label")
var labelValue = document.createElement("label")
var subDiv = document.createElement("div")
var br = document.createElement("br")
try{
var dBtn = document.getElementById(data.parlist[i].id);
var dLabel = document.getElementById(data.parlist[i].id + " label")
var dDiv = document.getElementById(data.parlist[i].id +" div");
var inprad = document.getElementById(data.parlist[i].id+" inp_rad");
var dLabelRad = document.getElementById(data.parlist[i].id + " label_rad")
var dSubDiv = document.getElementById(data.parlist[i].id +" div_rad");
dSubDiv.replaceChild(inprad);
dSubDiv.removeChild(dLabelRad);
dDiv.removeChild(dSubDiv);
dDiv.removeChild(dBtn);
dDiv.removeChild(dLabel);
myDiv.removeChild(dDiv);
}catch{
console.log("no")
}
这个for循环在一个函数里面,当点击一个站的按钮时会显示参数。这样:
您在图片中看到的内容有效,但我来try 澄清的问题是,当我按下按钮时,例如 station 1 出现在图片中,然后我按下 station 2 的按钮示例 应该你必须删除以前的参数 removeChild 不起作用,station 1 的参数保留在div 和 station 2 的参数被添加到下面而不是被删除
在try 中有一个问题,但我不知道它是什么,我这样说是因为当我检查页面并打开 控制台 时,我收到了我留在catch 一个“不”
感谢您阅读我的问题,欢迎提出任何建议,因为我迫切希望找到解决方案。
【问题讨论】:
-
将您的捕获更改为
catch (e) { console.log(e) }并检查控制台。 -
您缺少分号。
-
这是
catch出现的错误,多次出现:TypeError: dSubDiv is null parlist http://localhost/js/sConnetion.js:94 jQuery 8 parlist http://localhost/js/sConnetion.js:63 onclick http://localhost/js/sConnetion.js:49 EventHandlerNonNull* http://localhost/js/sConnetion.js:47 jQuery 8 <anonymous> http://localhost/js/sConnetion.js:37 -
现在这个
TypeError: Node.removeChild: Argument 1 is not an object.
标签: javascript for-loop button try-catch removechild