Javascript 找出使用纯JS单击的DOM元素
我有一个带有文本的HTML文档。我想完成的是,当您单击Javascript 找出使用纯JS单击的DOM元素,javascript,html,dom,Javascript,Html,Dom,我有一个带有文本的HTML文档。我想完成的是,当您单击div元素时,将显示该div的id 我试过这个: window.onload=function(){ associateIds(); 点击(); } 函数AssociateId(){ var all=document.getElementsByTagName(“*”); 变量id=-1; for(var elem=0;elem
div
元素时,将显示该div
的id
我试过这个:
window.onload=function(){
associateIds();
点击();
}
函数AssociateId(){
var all=document.getElementsByTagName(“*”);
变量id=-1;
for(var elem=0;elem
主标题
标题
爱丽丝开始厌倦了坐在她姐姐旁边的银行,厌倦了无所事事:有一两次她偷看了她姐姐正在读的那本书,但里面没有图片和对话,“一本书有什么用呢?”她想
爱丽丝:“没有照片或对话吗?”。
因此,她在自己的脑海里思考(她也在思考,因为炎热的天气让她感到非常困倦和愚蠢),制作一条雏菊链的乐趣是否值得费心站起来摘雏菊,突然一只小白兔
粉红色的眼睛从她身边掠过。没有什么比这更了不起的了;爱丽丝也不认为听到兔子自言自语“哦,天哪!哦,天哪!
我要迟到了!”(当她事后仔细考虑时,她想到她本应该对此感到惊讶,但当时一切似乎都很自然)。但是当兔子从背心口袋里拿出一块手表时,
爱丽丝看了看,然后急急忙忙地站了起来,因为她的脑海里闪过一个念头:她从来没有见过一只兔子,口袋里有一个背心口袋,或是一只手表要拿出来,她好奇地跑了
它穿过田野,幸运的是刚好及时看到它从树篱下的一个大兔子洞里钻了出来。
下来,下来,下来。秋天永远不会结束“我不知道现在我已经走了多少英里了?”她大声说我一定在接近地球中心的地方。让我想想:我想那将是四千英里以下——”(因为,
你看,爱丽丝在教室里的课上学了好几件这类的东西,虽然这不是一个炫耀自己知识的好机会,因为没有人听她的,但这仍然是一个很好的练习
(爱丽丝不知道纬度是多少,也不知道经度是多少,但她认为这是一个很好的词语)。
添加while
循环以获取父div
您必须添加
parentNode
,因为当您单击目标时,目标不是具有id
的div
,而是儿童的某个人,因此您必须添加parentNode
并循环元素,直到您获得具有id
的父div
,请参见以下代码:
function clicked() {
document.body.onclick = function(evt) {
var evt = window.event || evt; //window.event for IE
if (!evt.target) {
evt.target = evt.srcElement; //extend target property for IE
}
var parent = evt.target.parentNode;
while (parent.tagName != 'DIV') {
parent = parent.parentNode;
}
alert(parent.id);
}
}
希望这有帮助。解决此问题的最简单方法是在每个
div
上附加一个单击处理程序。您可以在分配ID时执行此操作
您可以为每个div
分配相同的函数作为单击处理程序。函数可以查询this.id
以获取被单击元素的id
,因为this
就是被单击的元素
在下面的代码片段中,我通过仅迭代div
元素而不是所有页面元素简化了代码
window.onload=function(){
AssociatedAndClickHandler();
}
功能点击(事件){
警报(this.id);
}
函数AssociatedAndClickHandler(){
var divs=document.getElementsByTagName('div'),
numDivs=divs.length;
对于(变量i=0;i
主标题
标题
爱丽丝开始厌倦了坐在她姐姐旁边的银行,厌倦了无所事事:有一两次她偷看了她姐姐正在读的那本书,但里面没有图片和对话,“一本书有什么用呢?”她想
爱丽丝:“没有照片或对话吗?”。
因此,她在自己的脑海里思考(她也在思考,因为炎热的天气让她感到非常困倦和愚蠢),制作一条雏菊链的乐趣是否值得费心站起来摘雏菊,突然一只小白兔
粉红色的眼睛从她身边掠过。没有什么比这更了不起的了;爱丽丝也不认为听到兔子自言自语“哦,天哪!哦,天哪!
我要迟到了!”(当她事后仔细考虑时,她想到她本应该对此感到惊讶,但当时一切似乎都很自然)。但是当兔子从背心口袋里拿出一块手表时,
爱丽丝看了看,然后急急忙忙地站了起来,因为她的脑海里闪过一个念头:她从来没有见过一只兔子,口袋里有一个背心口袋,或是一只手表要拿出来,她好奇地跑了
它穿过田野,幸运的是刚好及时看到它从树篱下的一个大兔子洞里钻了出来。
下来,下来,下来。秋天永远不会结束“我不知道现在我已经走了多少英里了?”她大声说我一定是
alert(evt.target.id);
alert(evt.target.parentNode.id);
document.body.onclick = function (evt) {
var evt = window.event || evt; //window.event for IE
var el = evt.target || evt.srcElement,
id = el.id;
while (!id && el.tagName !== 'BODY') {
el = el.parentNode;
id = el.id;
}
if(typeof id !== 'undefined'){
alert(id);
}
}