[英]Javascript add events to HTML LI Tags
在下面的函數中,我要單擊LI並在其中警告其值。 我正在使用eventListener,但是函數運行並在頁面加載時發出未定義的警報
請幫忙
var x = document.getElementsByTagName('li'); function displayText(){ alert(this.innerHTML); } for(var i = 0; i < x.length; i++){ x[i].onclick = displayText(); }
<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul>
您正在立即執行功能。
x[i].onclick = displayText;
e
包含上下文中的元素: e.target
使用以下修復程序查看此代碼段:
var x = document.getElementsByTagName('li'); function displayText(e) { alert(e.target.innerHTML); } for (var i = 0; i < x.length; i++) { x[i].onclick = displayText; }
<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul>
alert
。
更新:如@James所述,您可以在函數displayText
直接使用this
因為您具有元素的上下文。
因此,您可以如下實現函數displayText
:
function displayText() { alert(this.innerHTML); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.