尝试将元素添加到页面时,不断获得[对象HTMLLIElement]
问题描述:
此代码显示[object HTMLLIElement]
而不是实际的点击元素。当我console.log
this
可变它给我的元素我想在页面中显示,但在页面本身就说明[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;
});
}
}
}
答
如果你想获得该事件的元素引发剂,那么你应该使用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>");
})
}
'value'不是'li' elements..'innerHTML =这个属性....'不会增加但替换元素... – Rayon
不确定的答案,但这与'功能编程'有关的任何原因? – Sid