Javascript 主干事件获取元素类型

Javascript 主干事件获取元素类型,javascript,jquery,backbone.js,underscore.js,Javascript,Jquery,Backbone.js,Underscore.js,我有一个backbone.js应用程序,它有一个名为StoreProductView.js的视图: var StoreProductView = Backbone.View.extend({ events: { "click .changeProductType" : "changeProductType" }, render: function () { this.$el.append(render("products/product"));

我有一个backbone.js应用程序,它有一个名为StoreProductView.js的视图:

var StoreProductView = Backbone.View.extend({
  events: {
    "click .changeProductType"          : "changeProductType"
  },
  render: function () {

    this.$el.append(render("products/product"));
  },
  changeProductType: function (e) {
    console.debug(e.currentTarget.parentNode.next("li"));
  }
});
当我调用
console.debug(e.currentTarget.parentNode)
时,它返回:

<li>
  <a class='changeProductType' data-type="book">Book</a>
</li>

DOM
HTMLElement
对象没有
.next()
方法,您可能正在尝试对非jQuery对象调用jQuery
.next()
方法,如果要获取原始DOM元素的下一个元素,应该读取该属性

如果要调用jQuery
.next()
方法,应首先创建jQuery对象:

$(event.currentTarget).parent().next('li');
要读取
data-*
属性,可以使用jQuery
.data()
方法:

$matchedElement.find('a').data('type');
$(event.currentTarget).data('type');
尽管如此,因为
currentTarget
属性引用了单击的元素,所以您不需要
。next()
方法:

$matchedElement.find('a').data('type');
$(event.currentTarget).data('type');

为什么不包括当前出错的代码?