gpt4 book ai didi

javascript - 只显示一个段落......不管是否有更多,空白,空白,类......只有并且只有CSS

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:20 32 4
gpt4 key购买 nike

我正在寻找 css 属性以隐藏带或不带 css 类的段落,如果它包含空格 ( ) 或空白,但我想至少保留一个带或不带的段落,如果有更多的话。

隐藏段落,如果它是空白的或包含 white-space( ) 最好只用 css...如果没有其他选项,那么只用 JavaScript/jquery

// Ideally I don't want to use javascript/jquery

$("p").html(function(i, html) {
return html.replace(/ /g, '');
});
        p:nth-child(n+2):empty,
p:nth-child(n+2):blank,
.MsoNormal p:nth-child(n+2):empty,
.MsoNormal p:nth-child(n+2):blank {
margin: 0 0 0px;
display: none;
}

p::before {
content: ' ';
}

p:empty::before {
content: '';
display: none;
}

p:first-child:empty+p:not(:empty)::before {
content: '';
}

p:first-child:empty+p:empty+p:not(:empty)::before {
content: '';
}

p::after {
content: '';
display: none;
p:empty::after {
display: none;
}
p:first-child:empty+p:not(:empty)::after {
content: '';
}
p:first-child:empty+p:empty+p:not(:empty)::after {
content: '';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div> some text - 1 </div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div> some text - 2 </div>
<p>&nbsp;</p>

<div> some text - 3 </div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; &nbsp; </p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </p>
<p>&nbsp;</p>
<div> some text - 4 </div>
<p>&nbsp; &nbsp; &nbsp;</p>
<p>&nbsp;</p>
<div> some text - 5 </div>
<p></p>
<p></p>
<div> some text - 6 </div>
<p class="MsoNormal"></p>
<p></p>

    <b>So above html, I would like to display:</b>

<div> some text - 1 </div>
<p>&nbsp;</p>
<div> some text - 2 </div>
<p>&nbsp;</p>
<div> some text - 3 </div>
<p>&nbsp;</p>
<div> some text - 4 </div>
<p>&nbsp; &nbsp; &nbsp;</p>
<div> some text - 5 </div>

所以,我试图通过伪类和伪元素来获取它,但没有成功。(注意-我有在这里工作的 jQuery,但不想优先使用它。)

最佳答案

据我所知,您不能仅使用 CSS 来做到这一点。

使用 jQuery 是最简单、最简洁的方法。我不明白为什么你有 jQuery 但你不想使用它但是用纯 js 做这对我来说更“丑陋”。虽然我给你2段代码。

JS代码:

// get the elements and transform from HTMLCollection object to array
var array_p = document.getElementsByTagName("P");
array_p = Array.prototype.slice.call(array_p);

array_p.forEach(function(value, index) {
var text = value.innerHTML;
text = text.replace(new RegExp('&nbsp;', 'g'), '');
text = text.replace(new RegExp(' ', 'g'), '');
value.style.display = "none";
});

例如,如果你想使用它,我会添加一个 jQuery 代码:

$.each($("p"), function(index, value) {
var text = $(this).html();
text = text.replace(new RegExp('&nbsp;', 'g'), '');
text = text.replace(new RegExp(' ', 'g'), '');
if (text.length == 0) {
$(this).css("display", "none");
}

})

关于javascript - 只显示一个段落......不管是否有更多,空白,空白,类......只有并且只有CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48580358/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com