2010-03-04 72 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

相关问题