2011-11-25 2 views
1

사이트를 만들고 있는데 html은 데이터베이스에서 가져온 데이터가있는 php로 표시됩니다. foreach() 함수가있어서 표시되는 모든 항목의 DIV ID가 동일합니다. 그것은 동일한 ID (#content)를 가진 4 개의 DIV처럼 끝나기 때문에 PHP는 정상적으로 작동하지만 jQuery 스크립트가 있는데 jQuery("#content").hide();을 호출하면 DIV가 전부가 아닌 하나만 숨겨집니다. 그들 모두를 숨기기 위해서. 내가해야 할 일이 있나요? 감사합니다. .Jquery는 동일한 ID를 가진 div에 모두 hide()를 적용하지 않습니다.

+1

일부 참조 : [HTML4] (http://www.w3.org/TR/html4/struct/global.html#h-7.5. 2) *이 속성은 요소에 이름을 지정합니다. 이 이름은 문서에서 고유해야합니다. * - [html5] (http://www.w3.org/TR/html5/elements.html#the-id-attribute) * id 속성은 요소의 고유 식별자 (ID) * – Yoshi

+0

디버깅을 위해 http://validator.w3.org/와 같은 HTML 유효성 검사기에서 페이지를 테스트해야합니다 (또는 Firefox의 Web Developer Toolbar 또는 Chrome에 상응하는 Web Developer Toolbar와 같은 확장 프로그램을 설치해야합니다./Validate HTML은 유효성 검사기에 페이지를 제출합니다). 유효한 코드는이 문제를 자동으로 해결할 수 있습니다. – FelipeAls

답변

6

ID가 아닌 클래스 (.class_name)를 사용해야합니다. 하나의 DOM 요소에 특정 ID가있을 수 있습니다. 그렇지 않으면 잘못된 HTML입니다. ID 선택기가 단일 요소 만 반환하는 것은 합리적입니다.

1

단순히 지정된 ID로 둘 이상의 요소를 가질 수 없기 때문입니다. ID는 고유해야하며 고유해야합니다. 동일한 요소를 가진 하나의 단일 요소 만 DOM에 존재할 수 있습니다.

이 규칙을 따르지 않으면 스크립트 및 기타 공포가 손상 될 수 있습니다.

이 목적으로 클래스를 사용할 수 있습니다.

1

ID는 ONCE으로 만 사용하십시오! ID와 ID는 항상 고유해야하기 때문에

2

페이지의 요소 ID는 고유해야합니다. 따라서 사용자가 지정하는 모든 HTML 태그는 다른 ID를 가져야합니다. 특정 요소를 모두 숨기려면 숨기려는 요소에 클래스를 추가하는 것이 적합 할 수 있습니다.

<div class="divToHide">Content...</div> 
<div class="divToHide">Content...</div> 
<div class="divToHide">Content...</div> 

그런 다음 JQuery와는 다음과 같습니다

$(".divToHide").hide(); 
관련 문제