從fireAlert()函數內部,我怎樣才能引用調用它的元素,而不必通過鏈接傳遞this
作爲參數?如何從被調用的函數中引用包含該事件的元素?
<script type="text/javascript">
//function
function fireAlert(){
alert();
}
</script>
<a href="javascript:;" onclick="fireAlert();">Fire</a>
從fireAlert()函數內部,我怎樣才能引用調用它的元素,而不必通過鏈接傳遞this
作爲參數?如何從被調用的函數中引用包含該事件的元素?
<script type="text/javascript">
//function
function fireAlert(){
alert();
}
</script>
<a href="javascript:;" onclick="fireAlert();">Fire</a>
沒有與jQuery這樣做的更簡單的方法,但這是它是如何沒有完成它:
UPDATE:請嘗試以下HTML/Javascript代碼。注意我是如何在window.onload內部附加onclick事件的,而不是將它指定爲元素的屬性。
對於本示例,我將事件附加到頁面中的所有錨定標記,但是您可以用getElementById
替換getElementsByTagName
作爲特定的事件。
<html>
<head>
<script language="javascript">
function fireAlert(e)
{
var whoCalled = e ? e.target : event.srcElement;
alert(whoCalled.innerHTML);
}
window.onload=function()
{
var allHrefs = document.getElementsByTagName("a");
for(i=0;i<allHrefs.length;i++)
{
allHrefs[i].onclick=fireAlert;
}
}
</script>
</head>
<body>
<a href="#">Hello #1</a>
<a href="#">Hello #2</a>
<a href="#">Hello #3</a>
<a href="#">Hello #4</a>
</body>
</html>
是不是隻針對IE的srcElement? – hbw 2009-04-23 20:47:50
這是正確的。我更新了我的帖子以反映這一點。 – 2009-04-23 20:54:53
何塞說,它會很容易與jQuery。
$(document).ready(function()
{
$("a").click(function()
{
// this == the clicked element
});
});
我正在使用YUI。到目前爲止,沒有任何答案爲我工作。 – 2009-04-24 14:58:34