我有以下html:
<script type="text/x-handlebars-template" id="product-template">
<div class='product'>
<button class='changeProductType'>Change</button>
</div>
var ProductView = Backbone.View.extend({
el: ".container",
initialize: function() {
_.bindAll(this, 'render','changeProductType');
this.render();
},
events: {
"click .changeProductType": "changeProductType"
},
render: function() {
var source = $('#product-template').html();
var template = Handlebars.compile(source);
var html = template(this.model.toJSON());
this.$el.html(html);
},
changeProductType: function(ev){
var removeThis = ev.target.parent();
//alert(removeThis);
$("#changeProductTypeModal li a").on('click', function(){
removeThis.remove();
$.modal.close();
});
}
});
当我提醒ev.target时,它会显示“[object HTMLButtonElement]”,这很好。但是当我尝试删除整个.product div时,它不起作用。
我得到的错误是Uncaught TypeError: Cannot read property 'parent' of undefined
。那么如何删除被点击的按钮的父元素呢?
感谢您的帮助!
答案 0 :(得分:1)
尝试event.target.parentNode
或event.target.parentElement
而不是&#34; parent()&#34;。我听说过一种名为&#34; parent()&#34;在DOM API中。