javascript-在按钮中显示符号而不是文本

时间:2019-05-29 10:59:47

标签: javascript html css menu

我正在使用一个按钮打开菜单,但我喜欢这个按钮显示菜单符号而不是“菜单”文本。

如下:

☰->

✖->

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);">&#9776;</button>

2 个答案:

答案 0 :(得分:4)

尝试使用innerHTML并使用this直接传递按钮元素:

function toggleText(button) {
  if (button.innerHTML == "&#10006;" || button.innerHTML == "✖") {
    button.innerHTML = '&#9776;';
  } else {
    button.innerHTML = '&#10006;';
  }
}
<button id="playlist-toggle" class="btn-playlist" onclick="toggleText(this);">&#9776;</button>

注意innerHTML可以是&#10006;,因此请同时检查两者。

答案 1 :(得分:2)

只需更改按钮的实际文本,而不是子按钮即可。另外请注意,innerHTML可以是实体也可以是呈现的实体,因此也请检查一下:

function toggleText(button_id) {
  var el = document.getElementById(button_id);
  if (["&#10006;", "✖"].includes(el.innerHTML)) {
    el.innerHTML = '&#9776;';
  } else {
    el.innerHTML = "&#10006;";
  }
}
<button id="playlist-toggle" class="btn-playlist" onclick="toggleText(this.id);">&#9776;</button>