2009-11-24 160 views
2

我有一种感觉,这可能涉及某种先进的选择器,但我可能是错的。我有这个HTML工作:CSS选择器:有没有办法选择周围的元素?

<dt></dt> 
<dd><input type="hidden" class="hidden"></dd> 

...我需要使DT和DD标签隐藏的视图。我可以在input标签上申请一门课,但不能在其他标签上申请。那么我怎样才能在DT/DD标签上应用“隐藏”类风格呢?

回答

1

你不能以任何类型的跨浏览器的具体方式做到这一点。 jQuery的(或类似的JavaScript库)可以让你喜欢的东西做到这一点:

$("dd:has(input.classname)").each(function() { 
    $(this).hide().prev().hide(); 
}); 

$("input.classname").each(function() { 
    $(this).parent().hide().prev().hide(); 
}); 

注:很多jQuery的功能是围绕着利用先进的选择很多都是属于CSS3标准的一部分,但该标准仅在最现代的浏览器中部分实现。 JavaScript是任何一种广泛的浏览器兼容性的方式。

1

没有跨浏览器实用的方法来定位其子选择器中的父元素,如果您完全无法控制标记,则最好的办法是使用JS。