2014-07-20 86 views
-1

我在獲取JavaScript代碼時觸發某個頁面上的選定HTML表格時遇到了一些問題。這個想法是讓所有帶有stripe_table類的表格都由幾個JavaScript函數來設置樣式。JavaScript不會觸發多個類元素

中的JavaScript與此火災的HTML:

<body onload=searchPage()> 

的searchPage函數查找與stripe_table類的所有元素,並將它們傳遞給一些造型功能。

function searchPage() { 
    var table = document.getElementsByClassName('stripe_table'); 
    //Pass the table nodelist to the styling functions. 
    styleTable(table); 
    hoverColorChange(table); 
} 

目前它只是在頁面上的兩個表格中設計一個表格。

的styleTable功能如下:

的hoverColorChange功能如下:

+3

您沒有提供足夠的信息來查找錯誤。'styleTable()'和'hoverColorChange()'做了什麼? 'console.log(table.length)'輸出了什麼? – mash

+0

謝謝你,OP,編輯包括你的幫手功能的基本輪廓。然而,看到他們的實際代碼將會幫助更多。 – jtheletter

回答

5

注意document.getElementsByClassName回報一組元素具有所有給定的類名。您應該確定您的styleTablehoverColorChange函數遍歷所返回的集合(通過for循環或可能是Array.filter)。

http://devdocs.io/dom/document.getelementsbyclassname

我會建議您重新命名變量是多個,順便說一下,以使其更清晰,它是一個集合(tablestable)。

附錄:

感謝張貼您的完整代碼。將其粘貼到文本崇高3 JSLinter啓用,我得到一些警告,包括:使用他們的申報範圍的

  • 變量(例如tranchors)。使用==而不是===
  • 缺少分號。
  • for循環內定義的函數。

修復這些,並給它另一個運行。

+0

我認爲['Array.prototype.forEach'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)比'Array.filter'更有用: - ) –

+0

哦,是的。這也是一個很好的例子。 – jtheletter

+0

我不明白這是如何回答問題。 – mash

相關問題