Как достать кусок текста из элемента:
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));
}
});