javascript - 根据下拉菜单是否存在,在 bootstrap4 下拉菜单中显示或隐藏插入符号图标

标签 javascript jquery html css bootstrap-4

我想根据菜单项是否存在来显示或隐藏插入符号图标。如果存在的菜单项显示插入符号图标,否则隐藏它。我正在使用 bootstrap4,在我的例子中,下拉菜单项将动态生成。

.dropdown-toggle::after {
    display:none;!important
}

上面的代码删除了插入符号,但是如何根据下拉菜单中是否存在菜单来显示/隐藏它?

.dropdown-toggle::after {
    display:none !important;
}
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>


<div class="dropdown">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
      Dropdown button
    </button>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">Link 1</a>
      <a class="dropdown-item" href="#">Link 2</a>
      <a class="dropdown-item" href="#">Link 3</a>
    </div>
  </div>

最佳答案

如果$('.dropdown-menu .dropdown-item').length==0内没有元素,请使用.hide()

$( document ).ready(function() {
  if($('.dropdown-menu .dropdown-item').length==0 )
  {
   $('.fas.fa-shopping-cart').hide();
  }
});
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">



<div class="dropdown">
    <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">list<i class="fas fa-shopping-cart"></i>
 
    </button>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#">Link 1</a>
      <a class="dropdown-item" href="#">Link 2</a>
      <a class="dropdown-item" href="#">Link 3</a>
    </div>
</div>

只有CSS使用only-child:

.dropdown button:only-child .fas.fa-shopping-cart{
display:none;
}
    <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">



    <div class="dropdown">
        <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">list<i class="fas fa-shopping-cart"></i>
     
        </button>
    </div>

关于javascript - 根据下拉菜单是否存在,在 bootstrap4 下拉菜单中显示或隐藏插入符号图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167912/

相关文章:

javascript - 在增量搜索 JS 中设置突出显示的文本样式

jquery - 根据复选框选择向 <li> 添加或删除项目

javascript - 从 span in/out of div 遍历 DOM

javascript - 进入视口(viewport)时仅自动滚动嵌入窗口一次。无法向上滚动

HTML 5 视频流 .ism 文件?

css - 我怎样才能让我的 div 在我的文字下面?

javascript - 删除无父 HTML 元素

javascript - 如何处理在给定纸张上打印发票。 20 件/张,如果超过限制,则应转到下一页。最后一页的总金额

javascript - 如何捕获 JSON.parse() 的异常?

asp.net 中的 javascript 和 css