所以我試圖基本上動態地創建一個數組裏面的li,並且我想在每個li中創建一個'刪除'按鈕,這樣當我點擊那個li ,我可以刪除那個特定的li。JavaScript和DOM操作(創建和刪除)
我知道這看起來很基本,但我現在一直在尋找JS好幾個小時,而且我開始在這裏迷惑自己。 我不斷收到像addChild()這樣的錯誤不是函數......我覺得我很接近,但沒有雪茄。提前致謝!
總之,這裏是我的附加功能:
function add(){
var deleteBtn = document.createElement('input');
deleteBtn.type = 'submit';
deleteBtn.name = 'addButton';
deleteBtn.className = 'deleteButton';
for(i=0;i<1;i++){
id_number[i] = i+1;
var newSong = '<li class="li_test" id="' + id_number[i] + '">' + "<span>" + "</span>" + '</li>';
// $(newSong).appendChild(deleteBtn);
$(deleteBtn).appendTo("#playlist-1");
$(newSong).appendTo("#playlist-1");
showList.push(newSong);
deleteBtn.addEventListener('click', function(evt) {
deleteFromPlaylist(newSong);
});
}
}
這是我的刪除功能
function deleteFromPlaylist(newSong){
var deleteBtn = document.getElementsByTagName('deleteButton');
// var deleteMe = deleteBtn.parentNode;
alert(deleteBtn);
for(i=0;i<showList.length;i++){
if(newSong === showList[i]){
showList.splice(i,1);
// var pp = p.parentNode;
// pp.removeChild (p);
deleteMe = deleteMe.parentNode.remove("li_test");
deleteMe.removeChild(deleteBtn);
}
// console.log(deleteMe);
}
}
編輯:1更多相關問題
我想,如果只添加一個項目它不存在於數組中。這是我到目前爲止。關於我要去哪裏的任何提示錯誤?
for (i = 0; i < showList.length; i++) {
if (newSong !== showList[i]){
ul_list.innerHTML = newSong;
container_div.appendChild(ul_list); //append the info
container_div.appendChild(deleteBtn);
document.getElementById('playlist-1').appendChild(container_div); //finally add it to the playlist div
showList.push(newSong);
deleteBtn.addEventListener('click', function(evt) {
deleteFromPlaylist(evt, newSong);
});
inc++;
alert("It IS in the Array!");
}else{
alert("This already exists!");
}
}
那麼,我將從最簡單的事情開始......沒有''標籤。另外,你在這裏使用jQuery嗎?目前還不清楚,因爲你沒有這麼說過或者把你的問題貼上標籤。對於我所知道的,這可能是一個自定義函數。 –
Daedalus
啊。哎呦。你是對的,我想我的意思是使用getElementsByClassName。此外,我的錯誤現在全部來源於:deleteMe = deleteMe.parentNode.remove(「li_test」); – eightonrose
是的,我正在使用少量的jQuery,這是我更習慣的,但我最終想寫在普通的香草JS。 – eightonrose