당신은 "얼마나 나쁜지"물었다. @RobertKoritnik의 (정확히 정확한) 답변을 조금이라도 살리려면 ...
해당 코드가 잘못되었습니다. 회색 음영이 올바르지 않습니다. 이 코드는 표준을 위반하므로 올바르지 않습니다. 유효성 검사를 통과하지 못할 것입니다.
즉, 현재 시장에 나와있는 브라우저는 그것에 대해 불평하거나 전혀 문제가 없습니다. 브라우저 는 이에 대해 불만을 제기 할 권리 가 있지만 현재 브라우저 의 현재 버전은 없습니다. 향후 버전에서이 코드를 잘못 처리하지 않을 수도 있습니다.
CSS 또는 자바 스크립트에서 해당 ID를 선택기로 사용하려는 행동은 추측 할 수 없으며 브라우저마다 다를 수 있습니다. 각 브라우저가 어떻게 반응하는지 확인하기 위해 연구를 수행 할 수 있다고 생각합니다. 가장 좋은 경우는 "class ="처럼 취급하고 목록을 선택하는 것입니다. (하지만 JavaScript 라이브러리를 혼동 할 수 있습니다. jQuery의 작성자 인 경우 "#"로 시작하는 선택기를 사용하는 경우 단일 객체를 가져 와서 목록이 완전히 저를 지칠 수도 있습니다.)
또한 첫 번째 또는 마지막 중 하나를 선택하거나 둘 중 하나를 선택하지 않거나 브라우저를 완전히 중단시킬 수 있습니다. 시도하지 않고 말할 방법이 없습니다.
"나쁘다"는 전적으로 특정 브라우저가 HTML 사양을 얼마나 엄격하게 구현하는지와 해당 사양을 위반했을 때 수행하는 작업에 전적으로 달려 있습니다.
편집 : 나는 단지 오늘 이것을 발견했다. 다양한 유형의 엔티티에 대한 검색 양식에서 다양한 구성 요소를 가져 와서이 사이트에 대한 큰 올인원보고 유틸리티를 생성하고 있습니다. 숨겨진 div에 원격 페이지의 검색 양식을로드하고 내 슬롯에 슬롯을 넣습니다. 적절한 엔티티 유형이 보고서의 소스로 선택된 경우 보고서 생성기. 따라서 폼의 숨겨진 버전과 보고서 생성기에 버전이 표시됩니다. 모든 경우에 제공되는 JavaScript는 ID로 요소를 참조하는데, 이제 페이지에 숨겨진 요소와 표시되는 요소가 두 개 있습니다.
jQuery 가하고있는 것처럼 보이는 것은 FIRST 하나를 선택하는 것입니다. 모든 경우에 정확히 내가 원하지 않는 것입니다.
필드를 가져 오려는 페이지 영역을 지정하기 위해 선택기를 작성 하여이 문제를 해결하고 있습니다 (예 : $ ( '# containerDiv #specificElement')). 그러나 귀하의 질문에 대한 답변이 하나 있습니다. Chrome의 jQuery는이 사양 위반에 직면했을 때 특정 방식으로 작동합니다.