我有一个HTML表,并为每一行设置了事件监听器:
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/
我是初学者,所以我将非常感谢您提供更详细的解释!
答案 0 :(得分:4)
您必须使用nextElementSibling
而不是nextSibling
,因为nextElementSibling
始终会返回HTML元素。有关here