2011-11-07 20 views
0

我的代碼中有15個div標籤。我不僅在我的代碼手動計數,但我在DOM通過JavaScript似乎並沒有正確地讀取我的類名,但並不是所有的東西

var toShow2 = document.getElementsByTagName("div"); 


    for (var j=0;j<toShow2.length; j++) { 
     alert(toShow[j].className + " class iteration:" + j + "; checking for (show): " + show + "; checking for (hide): " + hide); 
     if (toShow[j].className.indexOf(show) > -1) { 

      var style = toShow[j].style; 
      style.display = "block"; 
     } 
     if (toShow[j].className.indexOf(hide) > -1) { 

      var style = toShow[j].style; 
      style.display = "none"; 
     } 
    } 

警報顯示類名(如果有的話),當前迭代檢查使用Firebug輸出每個迭代警報(0-14) ,它正在查找的第一個參數(顯示)和它正在查找的第二個參數(隱藏)。對於所有15個div(不包括第一個),只有一個類名,但它只能識別類名,即使存在於第5和第12個位置,也以0開始)。此代碼位於函數內,函數可以傳遞2個變量:step1,步驟2,步驟3,步驟4或步驟5。它承認的第一步類名稱上的第12位的第5位和第二步否則

toShow [J機] .className

在警報

出現如無物。

所有div的dom中出現的類名的順序是這樣的。

  1. [無類名]
  2. 步驟1
  3. 第二步
  4. 步驟3
  5. 步驟4
  6. STEP5
  7. 第二步
  8. 步驟3
  9. 步驟4
  10. STEP5
  11. 第一步
  12. 第二步:
  13. 第三步:
  14. 第四步:
  15. STEP5

我在我的HTML代碼檢查類名和他們完全匹配,這有什麼,我搜索爲我的警報輸出。任何幫助,將不勝感激。

+0

您使用兩個變量:'toShow2'和'toShow'。但是,'toShow'的定義在您的示例中缺失。 –

回答

0

匆匆一瞥,這是你想要的嗎?還沒有測試過什麼。 showhide未定義,因此您傳入未定義的變量。

var toShow2 = document.getElementsByTagName("div"); 


for (var j=0;j<toShow2.length; j++) { 
    alert(toShow[j].className + " class iteration:" + j + "; checking for (show): " + show + "; checking for (hide): " + hide); 
    if (toShow[j].className.indexOf('show') > -1) { 

     var style = toShow[j].style; 
     style.display = "block"; 
    } 
    if (toShow[j].className.indexOf('hide') > -1) { 

     var style = toShow[j].style; 
     style.display = "none"; 
    } 
} 
+0

那麼我有一個函數內的代碼,並顯示和隱藏作爲變量傳遞。然而,問題在於,當我使用toShow2時,我正在使用toShow。愚蠢的錯誤,但我花了很多時間。我有兩套這樣的代碼,一個用於's,另一個用於div,它們都用於相同的功能。我剛剛複製了一個使用toShow的,並沒有將其全部更改爲toShow2。謝謝你的幫助。 –

+0

我是新來張貼在stackoverflow,我如何標記羅布W的評論是正確的。 –

+0

您不能將評論標記爲正確,但您可以要求他將其發佈爲答案。 –

0

問題是您正在循環中使用toShow,但循環基於toShow2。修復它如下:

var toShow2 = document.getElementsByTagName("div"); 


    for (var j=0;j<toShow2.length; j++) { 
     alert(toShow2[j].className + " class iteration:" + j + "; checking for (show): " + show + "; checking for (hide): " + hide); 
     if (toShow2[j].className.indexOf(show) > -1) { 

      var style = toShow2[j].style; 
      style.display = "block"; 
     } 
     if (toShow2[j].className.indexOf(hide) > -1) { 

      var style = toShow2[j].style; 
      style.display = "none"; 
     } 
    } 
相關問題