javascript - 如何将按钮文本更改为单击列表项的 innerHTML

标签 javascript click innerhtml

我一直在搜索,但我找到的都是 JQuery 答案,我正在寻找一个普通的 JS 解决方案。

当单击列表项时,我希望按钮文本更改为被单击的 liinnerHTML

我快接近了,但不知何故 current 变量只返回最后一个列表项的 innerHTML

那么我需要更改什么才能将单击的 liinnerHTML 作为按钮文本?

JS-Fiddle here

var clickHandler = function() {

  document.getElementById('dropbtn').innerHTML = current.innerHTML;

};

var dropdown = document.getElementById('dropdown');
var filterItem = dropdown.getElementsByTagName('LI')

for (var i = 0; i < filterItem.length; i++) {
  var current = filterItem[i];
  current.addEventListener('click', clickHandler, false);

}
<div class="dropdown">
  <a id="dropbtn">Menu</a>
  <ul id="dropdown" class="dropdown-content">
    <li>ALL</li>
    <li>item 1</li>
    <li>item 2</li>
    <li>item 3</li>
    <li>item 4</li>
  </ul>
</div>

我删除了这个下拉菜单的 css 以保持清晰。

最佳答案

如评论中所述更改

document.getElementById('dropbtn').innerHTML = current.innerHTML;

document.getElementById('dropbtn').innerHTML = event.target.innerHTML;

var clickHandler = function() {

  document.getElementById('dropbtn').innerHTML = event.target.innerHTML;

};

var dropdown = document.getElementById('dropdown');
var filterItem = dropdown.getElementsByTagName('LI')

for (var i = 0; i < filterItem.length; i++) {
  var current = filterItem[i];
  current.addEventListener('click', clickHandler, false);

}
<div class="dropdown">
  <a id="dropbtn">Menu</a>
  <ul id="dropdown" class="dropdown-content">
    <li>ALL</li>
    <li>item 1</li>
    <li>item 2</li>
    <li>item 3</li>
    <li>item 4</li>
  </ul>
</div>

关于javascript - 如何将按钮文本更改为单击列表项的 innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47794680/

相关文章:

javascript - 在 Chrome 上通过 javascript 书签获取远程 ip

java - 禁用 ClickListener 事件

java - 是否可以去除 JButton 图标上的阴影?

javascript - 如何直接链接到由 innerHTML 生成的 div?

javascript - 复选框未选中 onclick JavaScript

javascript - 如何在 react-datepicker 中实现验证/限制

javascript - redux 与 mvc 之类的模型

javascript - 从应用程序脚本附加菜单打开一个新窗口

android - Android中Mysql连接ListView的教程

javascript - 我正在尝试让 Javascript 中的innerHTML 函数正常工作