JavaScript - Показать символ, а не текст в кнопке - PullRequest
0 голосов
/ 29 мая 2019

Я использую кнопку, чтобы открыть меню, но мне понравилось, что эта кнопка отображает символ меню вместо текста «Меню».

Как показано ниже:

☰ ->

✖ ->

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 ]

4 голосов
/ 29 мая 2019

Попробуйте использовать 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;, либо , поэтому проверьте оба.

2 голосов
/ 29 мая 2019

Просто измените фактический текст кнопки, а не ребенка.Также обратите внимание, что 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...