当前位置: 首页 > 面试题库 >

如何在统一层次结构中定位特定的一组siblings妹?

凌博实
2023-03-14
问题内容

假设您有以下HTML:

<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<h1>Header 1</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>

请注意,层次结构是平坦的。

现在尝试选择<p>元素的“中间对” 。这可能吗?我真的不知道怎么做。

此选择器仅获取<p>后面的第一个<h1>

h1:nth-of-type(2) + p

但是此选择器将获取正确的<p>元素对 以及<p>我们想要的对之后出现的所有以下元素:

h1:nth-of-type(2) ~ p

可能吗?

没有JavaScript。 没有标记更改。通用解决方案。允许任意数量的<h1>s或<p>s,在这种情况下,数量2是任意的。

我在想使用:not()选择器使用某些方法是可能的,但我似乎无法弄清楚。有点像选择“一般兄弟姐妹”,然后根据需要进行排除,或者类似的选择。


问题答案:

由于通用同级组合器的工作方式,不可能将同级的选择限制在特定范围或组中,即使是连续的同级也是如此。即使:not()选择器在这里也无济于事。


必须使用JavaScript来定位正确的元素。jQuery的.nextUntil()方法立即浮现在脑海。



 类似资料:
  • 问题内容: 我在表“ 示例* ” 中有一个列名称“ 父级” 和“ 子级” ,以下是表数据 * 如果我将输入设为 100,那么 我应该得到的结果为 100,101,102,103。 由于 100- > 101-> 102-> 103 ,而且如果我将输入设为 102, 则它也将得到与上述相同的结果。 102- > 101-> 100和102-> 103 。我只需要使用存储过程来实现此目的。 以下是我正

  • 本文向大家介绍js中的如何定位固定层的位置,包括了js中的如何定位固定层的位置的使用技巧和注意事项,需要的朋友参考一下 需要获取一些HTML的对象的坐标来更灵活的设置目标层的坐标,这里可以通过用到document.body.scrollTop等属性,但是这些属性在xhtml的标准网页中或更简单的说就是带<!DOCTYPE...>的标签中得到的值是0;如果不要此标签则一切正常,那么在xhtml中如何

  • 问题内容: 您如何在Java中以及在何处定义自己的Exception层次结构? 我的主要问题涉及必须定义Exception类的包位置。 我们是否为异常创建一个特殊的程序包并将所有类放入其中? 问题答案: 我将此作为一般规则。 在适当的地方,使用预定义的Java异常。例如,如果您的代码有某种I / O错误,则抛出IOException是可以的。 仅当需要在try / catch块中区分两个异常时,才

  • 问题内容: 我想在Go中解组以下JSON数据: 我知道该怎么做,我这样定义一个结构: 我不知道的是,是否有一种简单的方法可以对此进行专门化处理。我想在拆封后以如下格式获取数据: 这样我可以在像这样解组后稍后使用它: 我真的不知道如何在GO中轻松或习惯地执行此操作,因此我希望有一个不错的解决方案。 问题答案: 您可以通过在结构上实现接口来实现。这样的事情应该做: 这基本上表示应该从2个元素的floa

  • 通过学习《 Linux一切皆文件》一节我们知道,平时打交道的都是文件,那么,应该如何找到它们呢?很简单,在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如图 1 所示。 图 1 Linux 系统文件和目录组织示意图 其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息。 文件系统的最

  • 我试图设置一个作业在一个用户使用Quartz的时区的特定时间的单一执行。现在,开箱即用,告诉调度器执行时区中的任何内容的唯一方法是通过。对于Coors,我可能会将datetime转换为cron表达式,然后在第一次成功执行后立即停止触发器,但这有点难闻。 谢谢,