关于#javascript#的问题:当内容为文字就不会消失

当内容为文字就不会消失,求指教!每个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。这样就可以实现根据元素内容来显示或隐藏元素的效果了。