2017-10-10 46 views
0

我想學習的東西我用jQuery做在普通的JavaScript做。刪除父元素點擊使用普通的javascript

我有我在互聯網上找到的例子來解決這個例子,它真的讓我很難。

我試圖刪除父母div.single點擊button.remove

這是代碼;

var btn = document.getElementsByClassName('remove') 
 
    
 
for (var i = 0; i < btn.length; i++) { 
 
    btn[i].addEventListener('click',function (e) {  
 
     e.parentNode.parentNode.removeChild(e.parentNode); 
 
    } , false); 
 
}
<div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X1</button> 
 
    </div> 
 
    <div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X2</button> 
 
    </div> 
 
    <div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X3</button> 
 
    </div> 
 
    <div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X4</button> 
 
    </div>

我收到錯誤e.parentNode is undefined

這裏是jQuery代碼,它做了我一樣。

$(document).ready(function() { 
    $(document).on('click', '.remove', function() {  
    $(this).parent('.single').remove() 
    }) 
}) 

感謝您的任何答案。

+1

你需要支持'é .target.parentNode'。 'e'對象是事件對象,而不是節點。它是引用該節點的'target'屬性。 – trincot

+1

在方法內用'this'替換'e'。 – gurvinder372

+0

這兩個解決方案的工作,謝謝你們。 – iamwtk

回答

2

你需要從事件對象(currentTarget/target

注元素參考:所有現代瀏覽器有Node.remove()

var btn = document.getElementsByClassName('remove') 
 

 
for (var i = 0; i < btn.length; i++) { 
 
    btn[i].addEventListener('click', function(e) { 
 
    e.currentTarget.parentNode.remove(); 
 
    //this.closest('.single').remove() // in modern browsers in complex dom structure 
 
    //this.parentNode.remove(); //this refers to the current target element 
 
    //e.target.parentNode.parentNode.removeChild(e.target.parentNode); 
 
    }, false); 
 
}
<div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X1</button> 
 
</div> 
 
<div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X2</button> 
 
</div> 
 
<div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X3</button> 
 
</div> 
 
<div class="single"> 
 
    <img src="http://via.placeholder.com/150x150"> 
 
    <button type="button" class="remove">X4</button> 
 
</div>

+0

作爲魅力,非常感謝你! – iamwtk