在跟踪单击了哪些元素时,e.target.id有时为空
When tracking which elements were clicked e.target.id is sometimes empty
我正在尝试测试以下JavaScript代码,该代码旨在跟踪用户对多项选择调查的反应时间:
document.onclick = function(e) {
var event = e || window.event;
var target = e.target || e.srcElement;
//time tracking
var ClickTrackDate = new Date;
var ClickData = "";
ClickData = target.id + "=" + ClickTrackDate.getUTCHours() + ":" +
ClickTrackDate.getUTCMinutes() + ":" +
ClickTrackDate.getUTCSeconds() +";";
document.getElementById("txtTest").value += ClickData;
alert(target.id); // for testing
}
通常target.id等于单击的元素的id,正如您所期望的,但有时target.id是空的,似乎是随机的,有什么想法吗?
可能是因为被点击的元素没有ID。例如,如果你有这样的HTML,就会发生这种情况:
<div id="example">This is some <b>example</b> text.</div>
并且有人点击黑体字"example",使得事件目标将是b
元素而不是div
。
您可以尝试在DOM树上遍历,直到找到确实有ID的元素,类似于以下内容:
var target = e.target || e.srcElement;
while (target && !target.id) {
target = target.parentNode;
}
// at this point target either has an ID or is null
只使用e.currentTarget
而不是e.target
。
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- difference between '$(<%= DDL.ID %>) & $('
- 使用Javascript获取所选选项ID
- Javascript, target.id and event.srcElement.id
- 获取'event.target.id'作为字符串
- 火狐浏览器与 event.target.id 的问题
- event.target.id 不在火狐上工作
- 无法获取使用 event.target.id 触发事件的输入 ID
- jQuery/JavaScript - event.target.id on Firefox
- 在跟踪单击了哪些元素时,e.target.id有时为空
- e.target.id获胜't触发点击容器中的元素.children[i].onclick
- 将以前的事件.target.id存储在变量中
- event.target.id仅在Chrome中工作
- event.target.id VS event.currentTarget.id VS this.id
- jQuery函数(event) event.target.id在点击链接文本时为空
- Event.target.id未定义?使用backbone.js创建动态按钮
- Event.target.id在firefox中不起作用
- 无法将event.target.id保存到全局变量中
- Jquery - 如何从 e.target 获取嵌套 DIV 的 ID
- 如何从event.target获取元素的ID