如何根据选择的下拉项更改引导下拉菜单的颜色?

nnvyjq4y  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(254)

我有一个引导下拉菜单,有两个下拉项--“已完成”和“未完成”。当用户选择项目时,下拉菜单文本将设置为用户选择的任何项目。我希望下拉菜单的颜色也会根据所选项目进行更改。
如果用户选择“已完成”:class=“btn成功”。
如果用户选择“未完成”:class=“btn警告”。
这是我的html:

  1. <div class="dropdown">
  2. <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  3. -Select-
  4. <span class="caret"></span>
  5. </button>
  6. <div class="dropdown-menu" aria-labelledby="dropdownMenu">
  7. <button class="dropdown-item" id="comp" type="button" data-value="Completed">Completed</button>
  8. <button class="dropdown-item" id="notcomp" type="button" data-value="Not Completed">Not Completed</button>
  9. </div>
  10. </div>

以下是我尝试过的:

  1. $(".dropdown-menu button").click(function () {
  2. var menuText = $(this).parents(".dropdown").find('.btn');
  3. var btnValue = $(this).data('value');
  4. menuText.html($(this).text() + '<span class="caret"></span>');
  5. menuText.val(btnValue);
  6. if (btnValue.contains("Completed")) {
  7. const div = document.querySelector("dropdown-toggle");
  8. if (div.classList.contains("btn-secondary")) {
  9. $(menuText).removeClass("btn-secondary").addClass("btn-success");
  10. }
  11. if (div.classList.contains("btn-warning")) {
  12. $(menuText).removeClass("btn-warning").addClass("btn-success");
  13. }
  14. }
  15. if (btnValue.contains("Not Completed")) {
  16. const div = document.querySelector("dropdown-toggle");
  17. if (div.classList.contains("btn-secondary")) {
  18. $(menuText).removeClass("btn-secondary").addClass("btn-warning");
  19. }
  20. if (div.classList.contains("btn-success")) {
  21. $(menuText).removeClass("btn-success").addClass("btn-warning");
  22. }
  23. }
  24. });

我让queryselector()返回“dropdown toggle”而不是“btn”,因为html的其余部分包含其他按钮,我希望避免返回它们。idk,如果这很重要,但只是一些背景。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题