排除具有特定子项的元素[重复项]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排除具有特定子项的元素[重复项]相关的知识,希望对你有一定的参考价值。
在我(Tumblr)网站上的帖子上,我有很多段落,其中一些放在大括号内。在出现块引用的位置,其上方的段落通常是第一段(尽管多个块引用将意味着它们的多个)通常具有单个链接子项,而内部没有其他内容。例如:
<p> <a class="foo"> Link name </a> </p>
<blockquote>
<p> If there were multiple nested blockquotes, each one would have a <p><a class="foo"> line atop each new blockquote. </p>
<p> Some more text </p>
</blockquote>
<p> Some more text. </p>
<p> Even more text. </p>
我如何为所有段落设置样式(添加底部填充),除了那些具有单链接子项的段落(我想与blockquote齐平放置-无/最小填充或边距)?大概“:not()”将起作用,但是我还没有弄清楚在括号内使用的正确选择器。
答案
使用:has()和:not() jquery中的CSS伪类选择器可以实现您想要的。 :has()选择器cannot在CSS样式表中使用。
$(document).ready(function() {
var pElements = $(':not(p:has(> a))');
pElements.css('padding-bottom', '20px');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<p> <a class="foo"> Link name </a> </p>
<blockquote>
<p> Some text </p>
<p> Some more text </p>
</blockquote>
<p> Some more text. </p>
<p> Even more text. </p>
另一答案
要为属于<p>
元素的后代的所有<blockquote>
元素(不仅是直接后代)设置样式,可以使用如下CSS选择器。
blockquote p {
color: red;
}
<p>Selector doesn't apply to me.</p>
<blockquote>
<p>Selector applies to me.</p>
<p>And me.</p>
<footer>
<p>And also me.</p>
</footer>
</blockquote>
以上是关于排除具有特定子项的元素[重复项]的主要内容,如果未能解决你的问题,请参考以下文章