【问题标题】:dropdown menu get selected value javascript下拉菜单获取所选值 javascript
【发布时间】:2020-11-28 19:04:02
【问题描述】:

试图获取选定的值:

getSelectedValue = () => {
        let selectedValue = document.getElementsByClassName('aa');
        selectedValue.style.fontWeight = 'bold';
        console.log(selectedValue);
      };

如何将用户在下拉菜单中选择的值(文本)加粗

当用户在菜单中导航时,我需要将他在菜单中选择的值加粗。

我该怎么做??

HTML 代码如下:

<div class="dropdown">
            <button onclick="showMenu()" class="dropbtn">Menu</button>
            <div id="menuDrop" class="dropdown-content">
              <a href="#">O QUE É A MICOSE DE UNHA?</a>
              <a href="#aspecto">QUAL O ASPECTO DE UMA MICOSE DE UNHA?</a>
              <a href="#possiveis">POSSÍVEIS CAUSAS DA MICOSE DE UNHA</a>
              <a href="#">OPÇÕES DE TRATAMENTO PARA MICOSE DE UNHA</a>
              <a href="#">FATOS RÁPIDOS SOBRE A MICOSE DE UNHA</a>
            </div>
          </div>

CSS 代码如下:

.dropdown {
  position: relative;
  margin-top: 35px;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  overflow: auto;
  right: 0;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown a:hover {
  font-weight: bold;
}

.show {
  display: block;
}

下面的函数 showMenu (javascript):

showMenu = () => {
        document.getElementById('menuDrop').classList.toggle('show');
      };

      window.onclick = (event) => {
        if (!event.target.matches('.dropbtn')) {
          let dropdowns = document.getElementsByClassName('dropdown-content');
          for (let i = 0; i < dropdowns.length; i++) {
            let openDropdown = dropdowns[i];
            if (openDropdown.classList.contains('show')) {
              openDropdown.classList.remove('show');
            }
          }
        }
      };

【问题讨论】:

  • 到目前为止你尝试了什么?
  • @WaisKamal 什么都没有,我认为在使用 getElementById,但是如何将 css 更改为粗体?

标签: javascript html css drop-down-menu selecteditem


【解决方案1】:

我注释掉了这一行 - openDropdown.classList.remove('show') 并添加了用于添加/删除 active 类的脚本..

$(document).ready(function() {
    $(".dropdown-content a").click(function() {
    $(".dropdown-content a").removeClass("active");
    $(this).addClass("active");
  });    
});

showMenu = () => {
        document.getElementById('menuDrop').classList.toggle('show');
      };

      window.onclick = (event) => {
        if (!event.target.matches('.dropbtn')) {
          let dropdowns = document.getElementsByClassName('dropdown-content');
          for (let i = 0; i < dropdowns.length; i++) {
            let openDropdown = dropdowns[i];
            /*if (openDropdown.classList.contains('show')) {
              openDropdown.classList.remove('show');
            }*/
          }
        }
      };
.dropdown {
  position: relative;
  margin-top: 35px;
  display: inline-block;
}

.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  overflow: auto;
  /*right: 0;*/ /*remove it*/
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 1;
}

.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

.dropdown a:hover {
  font-weight: bold;
}

/* add it */

.active {
  font-weight: bold;
}

/*********************/

.show {
  display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dropdown">
            <button onclick="showMenu()" class="dropbtn">Menu</button>
            <div id="menuDrop" class="dropdown-content">
              <a href="#">O QUE É A MICOSE DE UNHA?</a>
              <a href="#aspecto">QUAL O ASPECTO DE UMA MICOSE DE UNHA?</a>
              <a href="#possiveis">POSSÍVEIS CAUSAS DA MICOSE DE UNHA</a>
              <a href="#">OPÇÕES DE TRATAMENTO PARA MICOSE DE UNHA</a>
              <a href="#">FATOS RÁPIDOS SOBRE A MICOSE DE UNHA</a>
            </div>
          </div>

【讨论】:

  • 它有效,但是当从href导航发生时,粗体消失
  • 你是否使用 ajax 来跟踪来自 href 的链接?
  • 不,我用我正在尝试的方式更新了我的问题,你能帮我解决吗??
  • 好的。当你点击链接时,是整个 dom 结构被加载,还是内容被加载到容器中?
  • 它已加载到容器中,当我点击链接时不会重新加载
猜你喜欢
  • 2023-03-05
  • 2012-11-30
  • 2018-08-06
  • 2015-07-09
  • 2021-03-04
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 2019-05-23
相关资源
最近更新 更多