2017-12-05 19 views
-7

우선 StackOverflow에서 가장 비슷한 질문을했지만 관련성이 없습니다.자바 스크립트에서 'getElementById'를 통해 동적 ID를 얻는 방법

동적으로 각 td에 대한 ID를 생성 한 테이블이 있습니다. (예 : td의 id가 "0 0")

id를 사용하여 해당 td에 액세스해야합니다.

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

이 "널 (null)"를 던졌습니다 : 나는 다음 코드를 시도했다. "rowID"도 동적으로 정의됩니다.

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

이 어떤 도움에 감사드립니다 : 내가 제대로 다음과 같은 출력을 얻을

document.getElementById("0 0"); 

:

나는 다음과 같은 시도

.

+5

공간 식별자 – Satpal

+0

'document.getElementById를 (ROWID에서 허용되지 않습니다 –

+0

동적 식별자를 지정해야하는 경우 GUID를 사용해보십시오. 그러나 열뿐만 아니라 행을 추적해야 할 경우 요소 ID와 동일한 의도가 아니므로 행을 분리하여 보관하는 것이 좋습니다. 즉, 행 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. (사람들은 CSS의 ID 선택이스케이프 숫자로 시작할 수 없습니다 수 없기 때문에 당신을 말할 것이다 있지만 id들, 숫자로 시작할 수 있습니다.)

+1

또는''row0col0 ''과 같은 의미로 ID를 사용하십시오. –

+0

@ NinaScholz : 물론, 행 + 열을 표현하는 것이 일반적인 방법이므로 '0x0' 또는 확실합니다. –