2010-03-04 74 views
1

我有如下所示有沒有什麼辦法從子元素訪問父Dom對象?

<div> 
    <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

尼斯..多數民衆贊成我正在尋找! – bragboy 2010-03-04 20:31:06

+1

沒問題。短而甜,只是你需要什麼。 – 2010-03-05 03:36:17

3

this article中解釋瞭如何瀏覽DOM樹。

您可能對parentNode屬性感興趣。

0

相對DOM操作是很棒的東西,非常值得學習。

JavaScript框架使這非常簡單。例如(使用Prototype):(jQuery有類似的動作)

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

然後你可以做這樣的事情:

$(this).up(2) - 去了兩個級別

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

甚至:

$(this).up('.someclass') - 這個樹上去,直到找到第一個帶有「someClass」類的元素

+1

-1:對於像這樣的簡單DOM操作,您不需要26kb JavaScript庫。我不使用推土機從我的牆上取下釘子。 – 2010-03-04 20:50:25

+1

不,你不知道,但它讓學習變得容易很多,並且使編碼變得更容易,併爲框架帶來的各種好處敞開大門。 26K,大吶喊,很多圖像都比那大。如果你是一個納粹純粹主義者,讓你開心安德魯,那麼你可以使用十六進制編輯器來建立你的網站。 – 2010-03-04 21:09:19

相關問題