一尘不染

如何使元素单击(针对整个文档)?

javascript

我想在单击的HTML文档中获取当前元素(无论是哪个元素)。我在用:

$(document).click(function () {
    alert($(this).text());
});

但是非常奇怪的是,我得到了整个文档的文本,而不是单击的元素。

如何仅获取我单击的元素?

<body>
    <div class="myclass">test</div>
    <p>asdfasfasf</p>
</body>

如果单击“测试”文本,我希望能够$(this).attr("myclass"在jQuery中使用读取属性。


阅读 262

收藏
2020-05-01

共1个答案

一尘不染

您需要使用event.targetwhich是最初触发事件的元素。在this您的示例代码指document

在jQuery中,就是…

$(document).click(function(event) {
    var text = $(event.target).text();
});

没有jQuery …

document.addEventListener('click', function(e) {
    e = e || window.event;
    var target = e.target || e.srcElement,
        text = target.textContent || target.innerText;   
}, false);

另外,请确保是否需要使用<IE9 attachEvent()代替addEventListener()

2020-05-01