2016-02-28 101 views
0

此代碼顯示[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

回答

0

如果你想獲得該事件的元素引發劑,那麼你應該使用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」)...'那麼。 –

-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>"); 
       }) 
    } 
相關問題