如何从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有更简单的方法,但没有它是这样的:
更新:请尝试以下 HTML/Javascript 代码。请注意我是如何在 window.onload 中附加 onclick 事件,而不是将其指定为元素的属性。
对于此示例,我将事件附加到页面中的所有锚标记,但您可以替换getElementsByTagName
为getElementById
特定的。
<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>
正如 Jose 所说,使用 jQuery 会很容易。
$(document).ready(function()
{
$("a").click(function()
{
// this == the clicked element
});
});