尝试将元素添加到页面时,不断获得[对象HTMLLIElement]

问题描述:

此代码显示[object HTMLLIElement]而不是实际的点击元素。当我console.logthis可变它给我的元素我想在页面中显示,但在页面本身就说明[object HTMLLIElement]尝试将元素添加到页面时,不断获得[对象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; 
     }); 
    } 
    } 
} 
+0

'value'不是'li' elements..'innerHTML =这个属性....'不会增加但替换元素... – Rayon

+0

不确定的答案,但这与'功能编程'有关的任何原因? – Sid

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

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

所以,如果你有一个<li>元素中,并在点击按钮就可以了,你会得到它event.target

+0

'li'元素可能有很多元素......而OP可能只想处理Button ... – Rayon

+0

嗯,'if(event.target.tag ==“button”)...'那么。 –

唯一的办法我能做到这一点是通过使用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>"); 
       }) 
    }