如何获得点击的元素(整个文档)?

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

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

但是很奇怪的是,我得到了整个(!)文档的文本,而不是单击的元素。

如何获得我点击的元素?

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

如果我点击“testing”文本,我希望能够读取jQuery中的$(this).attr("myclass" )属性。

您需要使用最初触发事件的元素event.target 。 在你的示例代码中的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 || text.innerText; }, false); 

另外,确保您是否需要支持使用attachEvent()而不是addEventListener() <IE9。

在身体标记中使用以下内容

 <body onclick="theFunction(event)"> 

然后在javascript中使用以下函数来获取ID

 <script> function theFunction(e) { alert(e.target.id);} 

你可以在event.targetfind目标元素:

 $(document).click(function(event) { console.log($(event.target).text()); }); 

参考文献:

使用delegateevent.targetdelegate通过让一个元素监听和处理子元素上的事件来利用事件冒泡的优势。 target是表示事件源自的对象的event对象的jQ-normalized属性。

 $(document).delegate('*', 'click', function (event) { // event.target is the element // $(event.target).text() gets its text }); 

演示: http : //jsfiddle.net/xXTbP/

 window.onclick = e => { console.log(e.target); console.log(e.target.tagName); } 

从单击的元素中获取文本

 window.onclick = e => { console.log(e.target.innerText); } 
 $(document).click(function (e) { alert($(e.target).text()); }); 

这是一个使用jQueryselect器的解决scheme,因此您可以轻松地定位任何类的标签,ID,types等

 jQuery('div').on('click', function(){ var node = jQuery(this).get(0); var range = document.createRange(); range.selectNodeContents( node ); window.getSelection().removeAllRanges(); window.getSelection().addRange( range ); });