2017-06-21 50 views
2

我有一個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 *空閒時間... –

回答

2

您將不得不使用nextElementSibling而不是nextSibling,因爲nextElementSibling總是返回一個HTML元素。更多關於here

+0

謝謝!這工作! – user74843

相關問題