2010-03-04 2 views
1

나는 다음과 같은자식 요소에서 상위 DOM 개체에 액세스 할 수있는 방법이 있습니까?

혼자 내부 DIV를 사용하여 외부 사업부의 배경 색상을 설정할
<div> 
    <div> 
    </div> 
</div> 

같은 간단한 DOM 코드가 있습니다. 가능한가? 그 질문은 약간 미친 듯하다. 그러나 나는 그것을 묻는 뒤에 강한 이유가있다. 동적으로 생성 된 html 코드가있는 프레임 워크에서 작업 중이며이를 제어 할 수 없습니다. 하지만 내부 요소를 넣을 수 있습니다. 위의 예에서 바깥 쪽 div는 생성 된 코드에서 나 왔으며 배경색을 변경하려고합니다. 직접 수행 할 수 없습니다. 그래서 나는 자식 div를 통해 그것을하고 싶다.

같은 것이 childDiv.parent.background-color = blue입니다.

가능합니까? 또는 유사한 구현은 엄청난 도움이 될 것입니다!

답변

1
<div> 
    <div> 

    </div> 
</div> 

childDiv.parentNode.style.backgroundColor = "blue";

+1

멋진 ... thats wat 내가 찾고 있던! – bragboy

+1

문제 없습니다. 짧고 달콤하며 필요한 것. –

3

this article에는 DOM 트리를 서핑하는 방법이 설명되어 있습니다.

아마도 parentNode 속성에 관심이 있습니다.

0

상대적 DOM 조작은 훌륭한 자료이며 학습 가치가 있습니다.

JavaScript 프레임 워크를 사용하면이 작업이 매우 쉽습니다. 가서 두 가지 수준

$(this).down() 
$(this).next() 
$(this).previous 

또는하기 -

$(this).up(2) :

당신은 다음과 같은 일을 할 수

<div> 
<a href="javascript://" onclick="$(this).up().style.backgroundColor='blue'">Make it blue</a> 
</div> 

(jQuery이 유사한 행동) : 예를 들어 (Prototype 사용)

$(this).up('.someclass') -이 클래스는 "someClass"클래스의 첫 번째 요소를 찾을 때까지 트리를 따라갑니다.

+1

-1 : 이와 같이 간단한 DOM 조작을 위해서는 26kb JavaScript 라이브러리가 필요하지 않습니다. 내 벽에서 못을 제거하기 위해 불도저를 사용하지 않습니다. –

+1

아니요, 그렇지만 쉽게 배우고 훨씬 쉽게 코딩 할 수있게 해주고 프레임 워크가 가져다주는 모든 종류의 이점에 대한 문을 열어줍니다. 26K, 큰 우프, 많은 이미지가 그보다 더 큽니다. 나치의 순정 주의자가되어서 Andrew가 행복하다면 16 진수 편집기를 사용하여 사이트를 구축하십시오. –

관련 문제