![](/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.