【发布时间】:2009-11-24 13:48:42
【问题描述】:
我感觉这可能涉及某种高级选择器,但我可能是错的。我有这个 HTML 可以使用:
<dt></dt>
<dd><input type="hidden" class="hidden"></dd>
...我需要隐藏 DT 和 DD 标签。我可以在input 标签上应用一个类,但不能在其他标签上应用。那么如何在 DT/DD 标签上应用“隐藏”类样式呢?
【问题讨论】:
标签: css css-selectors
我感觉这可能涉及某种高级选择器,但我可能是错的。我有这个 HTML 可以使用:
<dt></dt>
<dd><input type="hidden" class="hidden"></dd>
...我需要隐藏 DT 和 DD 标签。我可以在input 标签上应用一个类,但不能在其他标签上应用。那么如何在 DT/DD 标签上应用“隐藏”类样式呢?
【问题讨论】:
标签: css css-selectors
您不能以任何跨浏览器特定的方式来做到这一点。 jQuery(或类似的 Javascript 库)将允许您使用以下方式进行操作:
$("dd:has(input.classname)").each(function() {
$(this).hide().prev().hide();
});
或
$("input.classname").each(function() {
$(this).parent().hide().prev().hide();
});
注意: jQuery 的许多功能都围绕使用高级选择器展开,其中许多是 CSS3 标准的一部分,但该标准仅在最现代的浏览器中部分实现。 Javascript 是实现任何类型的广泛浏览器兼容性的方法。
【讨论】:
没有跨浏览器实用的方法可以从子元素的选择器中定位父元素,如果您绝对无法控制标记,最好的选择可能是使用 JS。
【讨论】: