普通的JavaScript:event.target:获取下一个兄弟,和第一个孩子

问题描述:

我有一个HTML表格,并建立了事件侦听器为每一行:普通的JavaScript:event.target:获取下一个兄弟,和第一个孩子

var greyHeadings = document.querySelectorAll(".grey"); 

console.log(greyHeadings); 

greyHeadings.forEach(function(greyHeading){ 
    greyHeading.addEventListener('click', function(e){ 
    displayDescription(e, greyHeading); 
    }); 
}); 

被调用的函数(displayDescription)是如下:

function displayDescription(e, greyHeading){ 
    var desc = e.target.parentNode.nextSibling.firstChild; 
    console.log(desc); 
} 

它确实给了我正确的目标,但看起来nextSibiling.firstChild不起作用。我需要到下一行(所以,兄弟姐妹),并找到第一个td(所以,第一个孩子),所以我可以添加一个active类,如果你想知道。

我还创建了一个的jsfiddle:https://jsfiddle.net/7vpzLfke/

我是初学者,所以这是更详细一点的解释将不胜感激!

+1

请注意,NodeList接口的[* forEach *](https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach)方法不受a使用的浏览器数量很多。 – RobG

+0

@RobG感谢您的信息。我期待着* []。slice *空闲时间... –

您将不得不使用nextElementSibling而不是nextSibling,因为nextElementSibling总是返回一个HTML元素。更多关于here

+0

谢谢!这工作! – user74843