2012-02-23 4 views
0

私は、マウスでセルの1つにカーソルを合わせると、その横の行が表示されるドロップダウンメニューを作成しようとしています。私はDOMとjavascriptを使って本当に新しいです。javascriptの配列からDOMノードにアクセスするにはどうすればよいですか?

私が進めている問題は、私が作成した配列が、私が思ったものにアクセスできないように見えるということです。それは私の構文ですか、それとも私はこれに別の方法でアプローチする必要がありますか?ここに私のコードは次のとおりです。

window.onload = function() { 
    var tableID = "strokerKitMenu"; 
    var table = document.getElementById(tableID); 
    var tableRows = table.getElementsByTagName("tr"); 
    var tableCell = []; 
    var counter = 0; 
    for (i = 0; i < tableRows.length; i++) { 
     tableCell[i] = new Array(); 
     tableCell[i].push(tableRows[i].getElementsByTagName("td")); 
    } 

    for (i = 0; i < tableCell.length; i++) { 
     tableCell[0, i].style.display = "block"; //This doesn't compile 
     alert(tableCell[0, i].Text); //This comes back "undefined" 
     for (j = 1; j < tableCell[i].length; j++) //I haven't even tested this part yet 
     { 
      tableCell[i][j].onmouseover = function showCell() { 
       tableCell[i][j + 1].style.display = "block"; 
      } 
      tableCell[i][j].onmouseout = function hideCell() { 
       this.style.display = "none"; 
      } 
     } //end inner for loop 
    } //end outer for loop 
} 
+0

としてそれらにアクセスする必要がありますあなたの質問には変更しないでください答えに与えられたコードを反映する。それは答えを時代遅れで混乱させます。 –

答えて

0

tableCell[i].push.apply(tableCell[i], tableRows[i].getElementsByTagName("td"));

あなたは、単一のアレイをプッシュする必要はありません。あなたは内のすべての要素をプッシュしたい。そうしないと、tableCell[i][0][j]

+0

'tableRows'はどのようにして2D配列ですか? –

1
tableCell[0, i].style.display="block"; //This doesn't compile 

この構文はJavaScriptで無効です:あなたは、あなたがtableCellのために2つのインデックスを指定しているが、私は、あなたが最初のエラーを修正すると、あなたがtableCell[0][i].style.display="block";

alert(tableCell[0, i].Text);    //This comes back "undefined" 

を意味推測しますこれをtableCell[0][i].textContentに変更したいと考えています。

+0

私はあなたが提案したことを試しましたが、私はまだ同じエラーが発生しています。他の考え? – Riet

+0

「同じエラー」とは何ですか? "コンパイルしない"と "未定義の値"?デバッガを試しましたか? (ChromeデベロッパーツールまたはFirebug) –

関連する問題