Задать вопрос
@Alisa94

Как по клику на кнопку получить определённую часть её текста?

Есть кнопки, текст которых среди прочего содержит в кавычках id. Как при клике на кнопки выводить в консоль эти id?

<ul>
  <li><button>First - Wall ["143"]</button></li>
  <li><button>Next - Floor ["153"]</button></li>
  <li><button>First - Wall ["654"]</button></li>
  <li><button>Second - Item ["764"]</button></li>
<ul>

При нажатии на первую кнопку в консоли должен получит число 143, при нажатии на вторую - 153...
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как достать кусок текста из элемента:

const getValue = el => el.textContent.match(/"(.*?)"/)[1];

// или

const getValue = ({ innerText: t }) =>
  JSON.parse(t.slice(t.indexOf('['), -~t.indexOf(']'))).shift();

Как обработать клики - можно обработчик назначить каждой кнопке индивидуально:

document.querySelectorAll('li button').forEach(function(n) {
  n.addEventListener('click', this);
}, e => console.log(getValue(e.target)));

Или делегировать обработку события общему предку:

document.querySelector('ul').addEventListener('click', e => {
  if (e.target.tagName === 'BUTTON') {
    console.log(getValue(e.target));
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы