2017-12-05 16 views
-7

まず、私はStackOverflowで最もよく似た質問をしましたが、何も関係ありません。javascriptの 'getElementById'を使って動的IDを取得する方法

私は、各tdのIDを動的に作成したテーブルを持っています。 (例:tdが "0 0"のIDを持っています)

idを使って特定のtdにアクセスする必要があります。

document.getElementById("\""+rowID + " " + 0 + "\""); 

これは "ヌル" をスロー: は、私は、次のコードを試してみました。 「rowID」も動的に定義されます。

私は次のことを試してください。

document.getElementById("0 0"); 

私が正しく次のような出力が得られます。

<td class=​"cell" id=​"0 0">​20​</td>​ 

すべてのヘルプは高く評価されます。

+5

スペースが識別子 – Satpal

+0

'のdocument.getElementById(ROWIDで許可されていない(CSSのID セレクタエスケープ数字で始めることはできませんので。人々は、彼らができないことを教えてくれますが、id sが、数字で始めることができます) + "" +0); 'または' document.getElementById( '"' + rowID + '0"'); ' –

+0

動的識別子を指定する必要がある場合は、GUIDを使用してください。しかし、列と行を追跡する必要がある場合は、要素の識別子と同じではないため、列を別々に保つことをお勧めします。つまり、行1の列2の 20 ' 'col-id'を' td'と 'row-id'に割り当てることさえできます。' document.querySelector( '[data-row-id = "1"] [data-col-id = "2"]'必要な機能に応じて、必要に応じて 'id'から' tr'要素に移動します。 – Nope

答えて

4

JavaScriptの文字列連結はどうすればできますか?

document.getElementById(rowID + " 0"); 
// or if we assume a `colID` variable: 
document.getElementById(rowID + " " + colID); 

しかしは、あなたが唯一のルールについてちょうど破壊していることid属性のためにそこにある注意:cannot contain a spaceそれ。一部のブラウザでは、その領域(実際にはChrome、Firefox、およびIE11のすべて)を使用して逃げることができますが、明示的に許可されていません。

id属性とコードのスペースを、アンダースコア(_)またはxと置き換えます。例えば、0x0

+1

、または '' row0col0''のように意味を持つidをとる。 –

+0

@ NinaScholz:もちろん、row + colを表現するのがかなり一般的な方法なので、 '0x0'です。 –

関連する問題