日期:2014-05-16  浏览次数:20476 次

JS DOM 如何获取触发事件的节点?
本帖最后由 lr_5146 于 2013-05-31 22:32:47 编辑
有下面一段HTML代码

<script type="text/javascript">
function click(){
    //
}
</script>
<div id="div">
    <img id="image" src="1.png" onclick="click()"/>
    <p id="p">item1</p>
</div>
<div id="div">
     <img id="image" src="1.png" onclick="click()"/>
     <p id="p">item2</p>
</div> 


因为这些代码是通过php生成的相同的条目,所以id src都没法改。
现在,怎样在点击图片后,获得当前的节点,并进而获得其相邻的节点?
即:点击两个img,都可以触发click()事件,怎么知道获得的是第一个还是第二个图片所在的节点?

------解决方案--------------------
事件名可以改吧?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<title>无标题文档</title>
<script type="text/javascript">
function click(){
//ETC
}
</script>
</head>

<body>
<div id="div">
<img id="image1" src="0.png"/>
    <p id="p">item1</p>
</div>
<div id="div2">
<img id="image" src="0.png"/>
    <p id="p">item2</p>
</div> 
<script type="text/javascript">
jQuery(function($){
$('img').click(function(e){
alert($(e.target).parent().find('p').html());
});
});
</script>
</body>
</html>