将 html 选择下拉列表转换为单个按钮导航栏

Posted

技术标签:

【中文标题】将 html 选择下拉列表转换为单个按钮导航栏【英文标题】:Convert html select dropdown to single button Nav bar 【发布时间】:2021-06-18 13:04:21 【问题描述】:

我需要动态菜单导航栏输出,如下所示。

但现在我变得像下面

我正在从下面的数据库中获取动态菜单数据是我的代码

  <select id="dropdownlist" class="form-control" style="color:black">
                        </select>


  $(document).ready(function () 
            $.ajax(
                type: "GET",
                url: "/CDO/Menu",
                data: "",
                success: function (data) 
                    var s = '<option>All History</option>';
                    for (var i = 0; i < data.length; i++) 
                        s += '<option value="' + data[i].Id + '">' + data[i].type + '</option>';
                    
                    $("#dropdownlist").html(s);
                
            );

【问题讨论】:

【参考方案1】:

您可以为for-loop 内的按钮下拉菜单创建a 标签,然后将生成的html 添加到您的dropdown-menu 内。

演示代码

//just for demo :)
var data = [
  "Id": "1",
  "type": "abc"
, 
  "Id": "2",
  "type": "abc2"
]
$(document).ready(function() 
  var s = "";
  /* $.ajax(
     type: "GET",
     url: "/CDO/Menu",
     data: "",
     success: function(data) */
  for (var i = 0; i < data.length; i++) 
    //generate a tag here ..
    s += ' <a class="dropdown-item" href="#"> ' + data[i].Id + ' - Type : ' + data[i].type + '</a>'

  
  $("#dropdownlist").html(s);
  /* 
  );*/


  //on click of a tag inside dropdown
  $(document).on('click', '.dropdown-menu a', function() 
    console.log($(this).text())
    $(".dropdown-toggle").text($(this).text()) //change text of button if needed
  );
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>

<div class="dropdown">
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    All History
  </button>
  <div class="dropdown-menu" id="dropdownlist">
    <!--here options will come -->
  </div>
</div>

【讨论】:

我有下拉更改事件以及如何编写。 @斯瓦蒂 现在我正在更新答案,这将起作用,但仍需检查。 @斯瓦蒂 我只需要更改事件的 id 值,但它提供的整个文本(如下拉菜单)具有文本和值 na。 @斯瓦蒂 将该值放入 data-value="yourid" 并在单击 a 标记时使用 $(this).data("value") 获取它 非常感谢这段代码非常有帮助,并在我的项目中成功实现。 @斯瓦蒂

以上是关于将 html 选择下拉列表转换为单个按钮导航栏的主要内容,如果未能解决你的问题,请参考以下文章

如何为移动屏幕的导航栏项目添加切换按钮,并使用 HTML、CSS 和 Bootstrap v4 将它们切换为下拉菜单

HTML+CSS实现网页的导航栏和下拉菜单

如何在操作栏上添加下拉项

JQuery实现鼠标滑过显示导航下拉列表

如何在 django 导航栏下拉列表中显示活动链接?

导航栏中的下拉按钮会扭曲导航栏