CSS3选择器:选择特定节点的父节点?

问题描述:

可能重复:
Is there a CSS parent selector?CSS3选择器:选择特定节点的父节点?

嗨!

我想选择一个特定节点(具有特定的className)的父节点来应用一些CSS样式。

据我所知,只存在子元素,后代,继节点等CSS3选择器操作数...所以只有在DOM文件中的一些“向前”的选择是可能的。当选择器应用于DOM文档中的某个部分时,选择器描述的元素始终是选中的最后一个元素。我错了吗?但愿如此!

如何在以下示例中选择第一个<div>元素?假设可能存在很多其他<div> s,其中包含<p> s,我只想选择包含p.foo但不包含p.bar<div>。请注意,我想选择<div>而不是<p>

<div> 
    <h1>Test</h1> 
    <p class="foo">Some text</p> 
</div> 
<div> 
    <h1>Test 2</h1> 
    <p class="bar">Some other text</p> 
</div> 

在此先感谢!

+0

[有没有CSS父选择器?](http://*.com/questions/1014861/is-there-a-css-parent-selector) – 2011-04-01 17:03:55

+0

@Matt对不起,没有找到当我搜索它时...所以它可能会被关闭,我想。感谢您的链接。 – leemes 2011-04-01 17:08:10

+1

如果您搜索“css父选择器”,这是最高结果,有31,000个视图。 – 2011-04-01 17:09:40

事实上,“父母选择器”不存在。
你可以看到这里选择的列表: http://www.w3.org/TR/css3-selectors/#selectors

你可以给你的父节点的ID,然后选择它的ID父。
否则我没有看到任何解决方案从底部使用CSS完全访问div。

+0

谢谢,但给它一个ID是不可能的,因为我无法修改文档(这是一个使用“时尚”的浏览器插件添加到网站的CSS)。 ..我想我需要一些脚本来完成它... – leemes 2011-04-01 17:10:56

+1

而不是使用JavaScript的parentNode,你可以尝试访问与“正常”自上而下的选择器的股利。事实上,如果你不能,我会感到惊讶。相当所有的网站都使用CSS来引导网站的创建者使这个提示的大部分元素“可选” – brillout 2011-04-01 18:54:14

+0

+1 ......我试图这样做。为了清楚起见,我想创建一个基于CSS的Facebook广告拦截器,因此选择右侧的Facebook赞助商框以使其“display:none;”没有任何自己的类名或ID。所有其他广告(例如,在影院视图中)都可以轻松选择。 – leemes 2011-04-01 19:04:07