我正在使用一个按钮打开菜单,但我喜欢这个按钮显示菜单符号而不是“菜单”文本。
如下:
☰
-> ☰
✖
-> ✖
function toggleText(button_id) {
var el = document.getElementById(button_id);
if (el.firstChild.data == "✖") {
el.firstChild.data = '☰';
} else {
el.firstChild.data = "✖";
}
}
<button id="playlist-toggle" class="btn-playlist" onclick="toggleText(this.id);">☰</button>
答案 0 :(得分:4)
尝试使用innerHTML
并使用this
直接传递按钮元素:
function toggleText(button) {
if (button.innerHTML == "✖" || button.innerHTML == "✖") {
button.innerHTML = '☰';
} else {
button.innerHTML = '✖';
}
}
<button id="playlist-toggle" class="btn-playlist" onclick="toggleText(this);">☰</button>
注意:innerHTML
可以是✖
或✖
,因此请同时检查两者。
答案 1 :(得分:2)
只需更改按钮的实际文本,而不是子按钮即可。另外请注意,innerHTML
可以是实体也可以是呈现的实体,因此也请检查一下:
function toggleText(button_id) {
var el = document.getElementById(button_id);
if (["✖", "✖"].includes(el.innerHTML)) {
el.innerHTML = '☰';
} else {
el.innerHTML = "✖";
}
}
<button id="playlist-toggle" class="btn-playlist" onclick="toggleText(this.id);">☰</button>