Som*_*ave 2 html javascript dom dom-events
我想从我单击的 HTML 文档中的单击元素中获取某个 innerText。
相应的 HTML 看起来像这样:
!DOCTYPE html>
<html>
<head>
<title>Some title</title>
</head>
<body>
<ul class="categories">
<li>
<a href="http://www.example2.com/1">
<div>
<img src="http://www.example.com/someSource">
<span>First</span>
</div>
</a>
</li>
<li>
<a href="http://www.example2.com/1">
<div>
<img src="http://www.example.com/someSource">
<span>Second</span>
</div>
</a>
</li>
</ul>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
Javascript 函数应根据单击的链接返回“First”或“Second”。
我的基本想法是添加一个事件监听器并使用返回的事件来获取span元素的内容:
function(){
document.addEventListener('click', function(e) {
e = e || window.event;
var spanText= e.path[i].innerText; //Don't know how to assign i correctly
return spanText;
}, false);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我不知道如何定义i或者是否有比.path[i]更适合使用的东西。取决于我是点击图像还是文本。
var lis = document.querySelectorAll('.categories li');
lis.forEach(function(el) {
el.addEventListener('click', onClick, false);
})
function onClick(e) {
var li = e.currentTarget;
var span = li.querySelector('span');
console.log(span.innerText);
}Run Code Online (Sandbox Code Playgroud)
<ul class="categories">
<li>
<a href="http://www.example2.com/1">
<div>
<img src="http://www.example.com/someSource">
<span>First</span>
</div>
</a>
</li>
<li>
<a href="http://www.example2.com/1">
<div>
<img src="http://www.example.com/someSource">
<span>Second</span>
</div>
</a>
</li>
</ul>Run Code Online (Sandbox Code Playgroud)