【发布时间】:2013-11-23 12:17:04
【问题描述】:
我正在尝试找出以下标记的选择器。我想要所有节点,除了包含块引用的节点。 <blockquote> 将始终是 <div> 的直接子代,<div> 将是 <body> 标记的直接子代。
示例 HTML:
<ul>
<!-- Lots of HTML -->
</ul>
<div>
<p>
<!-- Lots of other HTML -->
</p>
</div>
<div>
<blockquote>Some text I don't care about</blockquote>
</div>
预期结果:
<ul><!-- Lots of HTML --></ul>
<div><p><!-- Lots of other HTML --></p></div>
尝试的选择器:
document.querySelectorAll("body > :not(div > blockquote)")
我尝试了上述方法,但无法在 :not() 选择器中放置直接子选择器。尝试失败的Here is a fiddle。
我目前没有也不能使用 jQuery。
【问题讨论】:
-
兄弟姐妹是彼此并存的元素,在您的情况下,
<ul>和跟随它的两个<div>s 是兄弟姐妹。<blockquote>是其<div>的child,而<div>又是<body>的child,>是子选择器。 (直接兄弟选择器是+。) -
@BoltClock 呵呵,太晚了!会更新
标签: javascript css-selectors selectors-api