![](/img/trans.png)
[英]How are objects handled in JS async programming? Impact of delete-function
[英]JavaScript delete-function does not work (absolute Newbie)
首先,对不起这个糟糕的代码。 我是一个绝对的初学者,这是我有史以来第一个JS代码,我不得不在时间压力(不好)下对其进行编码。
任务是编写留言簿。 我有一个函数,可以为每个条目创建一个新的div并将其附加到最后一个(此部分效果很好)。
var lastid = 2;
function eintragen() {
...
var divC = document.createElement('div');
var ident='item'+lastid;
divC.innerHTML = '<table id="'+ident+'" class="eintrag center">
<tr><td>Name:</td><td>'+name2+'</td></tr><tr>
<td>Email:</td><td>'+email2+'</td></tr>
<tr><td>Eintrag</td><td>'+nachricht2+'</td></tr>
<tr><td></td><td><button class="buttonklein"value="loeschen"
***onclick="loeschen('+ident+')"***
>Eintrag löschen</button></td></t></table><hr>';
**divC.setAttribute('id',ident);**
var add = document.getElementById('item1');
add.appendChild(divC);
lastid+=1;
...
}
我试过突出相关部分。 如您所见,我将ID两次分配给divC,因为经过测试,我发现该ID在“ divC.innerHTML”段中不起作用。
每个条目都有一个自己的删除按钮,应该-可以猜到-删除相关的条目。单击该按钮后,该功能将启动,但随后什么也没有发生。
function loeschen(itemid) {
var sitem = document.getElementById(itemid);
sitem.parentNode.removeChild(sitem);
}
我猜想,由于将ID分配给divC在“ divC.innerHTML”部分中不起作用,因此也无法将其作为参数分配给“ onclick”-属性。
如果我在loeschen函数中用诸如“ item4”之类的具体内容替换itemid ,它将删除条目4,因此我猜错误出在divc.innerHTML-part中。
问题:我哪里出问题了? 是否有错误的“奇怪”? 如何为每个按钮提供当前的itemid? 一切对于其他变量(如名称oder email)都可以正常工作,所以我完全不知道。
在此先非常感谢,并为我的糟糕作风表示歉意。 以后我会努力的。
用户Teemu很快找到了答案,这是一个很大的帮助。 在divC.innerHTML段中,这确实是语法错误。 这样就可以了:
divC.innerHTML = `<table id="${ident}" class="eintrag center">
<tr><td>Name:</td><td>${name2}</td></tr><tr>
<td>Email:</td><td>'+email2+'</td></tr>
<tr><td>Eintrag</td><td>${nachricht2}</td></tr>
<tr><td></td><td><button class="buttonklein" value="loeschen"
onclick="loeschen('${ident}')">Eintrag löschen</button>
</td></t></table><hr>`;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.