当内容为文字就不会消失,求指教!每个div我都给了不同的id和相同的class
该回答引用ChatGPT
可能的原因是你的代码中使用了 :empty 伪类选择器,该选择器只会选中不包含任何内容的元素,包括空格、换行符等都算是内容。因此,如果你的 div 元素中包含文字,即使是空格,该元素就不会匹配 :empty 选择器了。
为了解决这个问题,你可以考虑使用其他方式来实现隐藏和显示效果。例如,可以使用 display 属性和 JavaScript 来控制元素的显示和隐藏。以下是一个示例代码:
HTML 代码:
<div class="box" id="box1">这是一段文字</div>
<div class="box" id="box2"></div>
CSS 代码:
.box {
display: none;
}
JavaScript 代码:
// 获取所有的 .box 元素
var boxes = document.querySelectorAll('.box');
// 遍历所有的 .box 元素,根据内容是否为空来显示或隐藏元素
for (var i = 0; i < boxes.length; i++) {
if (boxes[i].textContent.trim() === '') {
boxes[i].style.display = 'none';
} else {
boxes[i].style.display = 'block';
}
}
在上面的代码中,我们首先将所有的 .box 元素的 display 属性设置为 none,即隐藏元素。然后,使用 JavaScript 遍历所有的 .box 元素,根据元素中的内容是否为空来决定是否显示元素。具体来说,我们使用 textContent 属性获取元素中的文本内容,并使用 trim() 方法去除文本内容前后的空格,然后判断内容是否为空。如果内容为空,就将元素的 display 属性设置为 none,否则设置为 block。这样就可以实现根据元素内容来显示或隐藏元素的效果了。