html - 选择给定类(class)的第一个 child ,如何?

标签 html css css-selectors

<分区>

我有以下 html,我只想显示第一个“.xpto”元素。 我的问题是我正在动态删除类 .xpto,所以当我这样做时,第一个 .xpto 元素将成为第二个内部 div。我怎样才能做到这一点?

<div>
    <div class="xpto"></div>
    <div class="xpto"></div>
    <div class="xpto"></div>
    <div class="xpto"></div>
</div>

我尝试了 :first-child、:first-of-type 和 :nth-child(1n) 但没有任何效果。 有任何想法吗? (仅限 CSS)

测试用例:http://jsfiddle.net/7YRAF/

最佳答案

虽然这在 CSS 中并不完全可行,但在当前示例中可以使用:

EXAMPLE HERE

div:not(.xpto) + div.xpto {
    display:block;
}

如果它的前一个元素没有 .xpto 类,它基本上只选择后续的 .xpto 元素。由于您要删除该类,因此选择了“第一个”元素。不过,这显然不会在所有 实例中起作用,因此您应该只为此使用 jQuery,因为您已经在使用它了。

EXAMPLE HERE

$('div > div.xpto:first').addClass('visible');

作为替代方案,您也可以这样做:

EXAMPLE HERE

div > .xpto {
    display:block;
}
div > .xpto ~ .xpto {
    display:none;
}

关于html - 选择给定类(class)的第一个 child ,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22489522/

相关文章:

javascript - 如何使用 raphael.js 为每个 Angular 绘制带控制点的多边形

javascript - 仅当我在 li 上悬停 1 秒后才在悬停时显示弹出窗口

html - <div style "both">中的="clear:both"是什么意思

html - 为什么内容比div大?

html - 如何使用css向<img>元素添加渐变叠加?

html - 如何将这些元素放在同一行?

css - 隐藏除前两段之外的长文本

javascript - 通过 Javascript 将不断变化的文本文件数据输出到网页上

javascript - nth-child 不处理动态生成的 DOM

html - 如何选择之前的标签并选中复选框?