页面上有很多嵌套的div,我不知道他们的id,当点击鼠标的时候,得到被点击的div的id,如果该div没有id,那么取它外围最近的div的id
怎么办呢?没有思路
怎么办呢?没有思路
解决方案 »
- js实现论坛文本编辑框问题
- js-文字段落显
- 真心问大家一个问题?希望大家帮帮忙啊!
- JS防止被框架的问题
- 麻烦做过微博账户和本站账户绑定的同志看看我的问题吧。
- 使指定<iframe >区域双击响应某一事件,该怎么写?Fname.document.ondblclick = alert("ok") 这句没反应。
- 怎么正则表达判断一个字符串全是数字..(没有位数限制)
- 有谁作过在WEB上的新建或已存在的OFFICE 文档,经客户修改后发回服务器,有高分
- 在线编辑的保存问题
- 如何取Window.open打开的页面里DIV的内容???
- 调试javascript的工具
- JS高手进来研究。。。。。和我一样菜的进来学习。。。。。。。呵呵
alert(thisobj.id)}
if(thisobj.id == ""){
alert(thisobj.parentNode.id)
}
}
比如<div id="1"><div id="2">test click</div></div>
当我点击test click的时候,得到id位2的div,
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("div").click(function(){
alert($(this).parent().attr('id'));
return false;
});
});
</script>
<div id="1">
<div id="2">
2
</div>
<div id="3">
3
<div id="4">
4
</div>
</div>
</div>
所有div是别人写的,我不能要求别人把div里面加方法onclick等方法
比如 <div id="1"> <div id="2"> test click </div> </div>
当我点击test click的时候,得到id位2的div,----那好办
window.onload = function(){
var oDiv = document.getElementsByTagName("div");
for(var i=0;i<oDiv.length;i++){
oDiv.setAttribute("onclick" ,function(){return ad(this)});
}
}
<head>
<meta http-equiv="http-content" content="text/html;charset=gb2312"/>
<title>测试</title>
<script>
//使用event对象
document.onclick=GetID;
function GetID(e)
{
e=e?e:window.event;
var tag=e.target?e.target:e.srcElement;
if(tag.id)
alert(tag.id);
else
{
while(tag!=null)
{
if(tag.id)
{
alert(tag.id);
break;
}
tag=tag.parentNode;
}
}
}
</script>
</head>
<body>
<div id="21">21
<div id="211">211</div>
<div id="213">213</div>
<div>212</div>
</div>
<div id="22">22</div>
<div id="23">23</div>
<div id="24">24</div>
</body>
</html>
1, 事實上還是要考慮下是否冒泡的 因為常用瀏覽器一般都采用冒泡 從類到外捕捉,但也有不少列外的
2, 習慣上還是不要使用this對象,用event.target 或者event.srcElement.
3, 避免零級dom的應用,建議使用attachEvent或者addEventListener
<!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=gb2312" />
<title>elementFromPoint|explicitOriginalTarget</title>
<script type="text/javascript">
/*
利用document.onmousemove方法检测鼠标移动
然后IE和OP都有document.elementFromPoint方法可以求出某点的对象
FF则可以用event.explicitOriginalTarget得出目前触发over的对象
这样就得到了当前鼠标经过的对象
*/
document.onclick = function (e) {
var e = window.event || e;
document.getElementById("status").innerHTML = (
document.elementFromPoint ? document.elementFromPoint(
e.clientX + document.documentElement.scrollLeft, e.clientY + document.documentElement.scrollTop
) : e.explicitOriginalTarget
).id;
};
</script>
</head>
<body>
<div id="status" style="background-color:#6699CC; border:#000000 1px solid;"></div>
<div id="f1" style="width:100px; height:200px; background-color:#000000;">
<div id="f11" style="width:50px; height:100px; background-color:#CCCCCC;"> </div>
</div>
<div id="f2" style="width:100px; height:50px; background-color:#FF0000;"> </div>
</body>
</html>