在尝试向页面添加元素时继续获取[object HTMLLIElement]

时间:2016-02-28 04:47:05

标签: javascript oop javascript-objects

此代码显示[object HTMLLIElement]而不是实际的点击元素。当我console.log this变量时,它会向我提供我想要在页面中显示的元素,但在页面本身中显示[object HTMLLIElement]

var mainView = {
  liDis: function() {
    var liList = oct.catsList().getElementsByTagName('li');
    for (var i = 0; i < liList.length; i++) {
      liList[i].addEventListener('click', function() {
        console.log(this);
        oct.catsDisplay().innerHTML = this.value;
      });
    }
  }
}

2 个答案:

答案 0 :(得分:0)

如果你想获得事件的元素发起者,那么你应该使用event.target属性:

  liList[i].addEventListener('click', function(event) {
    console.log(event.target);
    oct.catsDisplay().innerHTML = event.target.value;
  }); 

因此,如果您在<li>元素中有按钮并点击它,您将在event.target中获得该按钮。

答案 1 :(得分:-1)

我能够做到的唯一方法是使用jQuery:

liDis: function () { 
                 $(document).on('click', 'li', function (e) {
                     e.preventDefault();
                     score = 0;
                    var jjjj = $(this).html();
                    $( "#catsDisplay" ).html( jjjj + "<br><p id='score'>" + 0 + "</p>");
                 })
    }