私は検索してきましたが、私が見つけたのはJQueryの回答です。私はバニラのJSソリューションを探しています。ボタンのテキストをクリックしたリストの項目のinnerHTMLに変更する方法
リストアイテムがクリックされたとき、ボタンのテキストをのli
に変更します。
私は近づいていますが、どういうわけかcurrent
変数は最後のリスト項目のinnerHTML
を返します。
ボタンのテキストとしてli
をクリックすると、innerHTML
を変更するにはどうすればよいですか?
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を切り出します。
event.target.innerHTML? – danielarend
[イベントを引き起こした要素のテキストへのアクセス](https://stackoverflow.com/questions/20680296/accessing-the-text-in-an-element-that-triggered-the-event) –