2010-07-27 5 views
1

내가 좋아하는, jQuery를 일부 코드를 작성했다 :JavaScript는 요소가 DOM 인 위치를 어떻게 알 수 있습니까?

$(".middleContent").not(this).slideUp(); 

(이 현재 활성화 .middleContent 요소 =)

그리고 자바 스크립트는 DOM의 요소 인덱스를 어떻게 알았는지 궁금했다.

각 개체가 고유하다는 것을 알고 있지만 같은 클래스의 요소가 몇 개 있는지 어떻게 구분합니까? 프로그램이 RAM에 주소를 가지고있는 것처럼 모든 요소의 트리에서 인덱스를 수행합니까?

+1

이 질문은 jQuery 질문입니까? –

+0

다른 사람이 태그를 다시 지정하지 않았습니다. 예를 들어 jQuery를 사용하고있었습니다. –

+1

당신은 가치에 의한 평등과 참조에 의한 평등을 혼동하고 있습니다. 그것들은 두 가지 매우 독특한 비교입니다. – Warty

답변

2

각 DOM 요소는 개별 개체이며 고유합니다. not은 현재 실행 컨텍스트 (this)에서 비교를 수행하여 배열 안의 요소가 this과 같지 않은지 확인합니다.

1

DOM의 요소는 트리 구조로 구성된 개체 그 자체이므로 동일한 수준의 다음 형제와 이전 자식 형제, 자식 목록, 부모 목록이 있습니다. 이것에서 당신은 나무의 구조를 걸을 수 있고 그것을 조작 할 수 있습니다.

당신은 색인 표기법을 사용하여 jQuery를 객체 내부의 객체 (들)을 얻을 수 있습니다

var caption = $('#caption'); 
var domElement = caption[0]; 

다음 domElementone of these 포함됩니다.

2

나는 DOM 요소가 이라는 고유 한 의미가 과소하다고 생각합니다.입니다. DOM 요소를 식별하는 것은 현재 부모 요소 내의 클래스, 태그 이름 또는 색인 일 뿐만이 아닙니다. 각 DOM 요소는 내부적으로 고유 식별자를 가지며 사용자가 액세스 할 수 없습니다. 브라우저에서 DOM을 내부적으로 구성하는 데 사용됩니다. 외관상으로는 똑같은 수백 가지의 <div class="middleContent" /> 요소가 페이지에있을 수 있으며, 각각 고유 한 내부 식별자가 있습니다. 하나의 DOM 요소를 다른 DOM 요소와 비교하면 브라우저는 항상 이 같은 요소인지 또는 그 것처럼 보이는 지 여부를 알 수 있습니다.

this은 하나의 특정 DOM 요소를 참조하므로 jQuery는 비슷한 요소로 구성된 컬렉션에서 필터링 할 수 있습니다.

관련 문제