如何在一个分区内搜索分区,如果它们都具有相同的"显示"值("无"),则显示消息? 我只是在学习,我需要百分百使用它 jQuery

<div class="test1">
 <div class="test2" style="display:none">
  
 </div>
 <div class="test2" style="display:none">
  
 </div>
 <div  class="test2" style="display:none">
  
 </div>
 <div  class="test2" style="display:none">
  
 </div>
</div>

我使用jQuery.eachtry 过

  jQuery('.test1 > .test2').each(function(){
    if(jQuery(this).css('display') == 'none'){
        jQuery('.test_message').text('nothing');
    }
})

推荐答案

您当前逻辑的问题在于,您正在单独测试每.test2个分区,然后根据该单个元素输出消息.相反,您需要首先判断all个元素,然后在必要时输出消息.

为此,您可以存储一个标志来确定分区的状态,然后如果其中任何一个分区与该状态不匹配,则更改该标志.这是一个工作示例:

jQuery($ => {
  let allHidden = true;

  $('.test1 > .test2').each(function() {
    if ($(this).css('display') !== 'none') {
      allHidden = false;
      return;
    }
  })

  if (allHidden) {
    $('.test_message').text('nothing');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="test1">
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
</div>

<div class="test_message"></div>

也可以通过使用:visible Select 器在没有显式循环的情况下实现这一点:

jQuery($ => {
  if (!$('.test1 > .test2:visible').length) {
    $('.test_message').text('nothing');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<div class="test1">
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
  <div class="test2" style="display: none"></div>
</div>

<div class="test_message"></div>

最后,请注意,在上面的例子中,我使用了一个简写document.ready处理程序,它对$变量进行了别名.这意味着您可以安全地使用$前置字而不是详细的jQuery关键字,而不会影响任何其他可能也使用$的脚本.

Javascript相关问答推荐

reaction useEffect KeyDown for each 条目配音输出

使用JavaScript重新排序行

在grafana情节,避免冲突的情节和传说

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

Reaction Native中的范围滑块

未定义引用错误:未定义&Quot;而不是&Quot;ReferenceError:在初始化&Quot;之前无法访问';a';

连接到游戏的玩家不会在浏览器在线游戏中呈现

为什么这个.add.group({})在教程中运行得很好,但在我的游戏中就不行了?

MarkLogic-earch.suggest不返回任何值

如何确保预订系统跨不同时区的日期时间处理一致?

当标题被点击时,如何使内容出现在另一个div上?

Docent.cloneNode(TRUE)不克隆用户输入

无法重定向到Next.js中的动态URL

在不扭曲纹理的情况下在顶点着色器中旋转UV

如果NetSuite中为空,则限制筛选

Django模板中未加载JavaScript函数

AstroJS混合模式服务器终结点返回404

如何用react组件替换dom元素?

material UI自动完成全宽

在此div中添加一个类,并在一段时间后在Java脚本中将其删除