2012-09-14 2 views
0

가능한 복제를 시작하면 무엇 :
Why can't I have a numeric value as the ID of an element?요소의 ID가 숫자로

요소의 ID가 문자로 시작해야합니다 ([A-Za-z]와). 하지만 만약 내가 뭔가를 할

<td id='9'></td> 

자바 스크립트는 이러한 요소를 찾을 수 있습니다. 그래서 나는 숫자로 시작할 수없는 이유를 모르겠다.

+0

숫자를 포함 할 수는 있지만 식별자로 시작할 수없는 식별자는 일반적인 규칙입니다 (TSQL 및 C# AFAIK와 동일). 그럴만한 이유가 있는지 확실하지 않습니다. –

+0

클래스 식별자는 숫자로 시작할 수 있지만 ID 식별자는 사용할 수 없습니다. 그게 전부입니다. [CSS 트릭] (http://css-tricks.com/ids-cannot-start-with-a-number/). – sp00m

+0

id = "item_1"과 같은 접두어를 붙이면 괜찮습니다. 예를 들어 자바 스크립트로 모든 ID를 나눌 수 있습니다 ... –

답변

4

표준은 ID가 문자로 시작해야한다고 지정한다. 브라우저 (또는 자바 스크립트 엔진)가 해당 요구 사항을 무시하도록 선택하면 바로 그 방법입니다. 브라우저가 정말 그렇게 용서하는 ...

+0

자바 스크립트가 포함 된 C 스타일 프로그래밍 언어가 변수 이름을 사용할 수 없다는 점에 유의할 가치가 있다고 생각합니다. 이는 파서/컴파일러/인터프리터에 혼란을주기 때문에 숫자로 시작합니다. –

1

HTML 4는

ID와 이름 토큰은 문자로 시작해야합니다 ([A-Za-z]와) 어떤 수에 따라 수 있음을 참으로 정규화 (0-9), 하이픈 ("-"), 밑줄 ("_"), 콜론 (":") 및 마침표 (".")로 구성됩니다.

여전히 공식 하나가 아닌 경우에도, 브라우저가 much more permissive HTML5 norm 적용 오랜 시간이있다 :

모든 문자열은 다음과 같은 제한 사항 :

  • 는 적어도 하나 개의 문자 여야합니다 긴 문자
  • 에는 공백 문자가 포함되어서는 안됩니다.

HTML4 표준을 준수하지 않는 경우 구형 브라우저에 문제가있을 수 있으므로주의하십시오. 대부분의 언어로 된 프로그래머는 "평범한 아이디"에 익숙합니다. HTML4에서와 비슷합니다. "비정상적인"ID를 사용함으로써, 당신은 그들을 처리 할 수없는 라이브러리를 만날 위험이 크지 않습니다.

2

사양을 벗어난 경우 작업중인 사양보다 더 엄격하게 사양을 따르기로 결정한 브라우저에서 코드가 작동하지 않을 위험이 있습니다.

숫자가 고정 된 문자열로 시작하고 '숫자'ID의 의미를 유지하면 이러한 문제를 피할 수 있으므로 불필요한 위험이있는 것처럼 보일 수 있습니다.