Как использовать переменные в _hyperscript js
Мне нравится _hyperscript js, который я считаю очень многообещающим и забавным.
Теперь я пытаюсь понять использование переменных внутри простых команд. Предположим, у меня есть следующий код, сгенерированный сценарием PHP, который запрашивает дБ, а идентификаторы получают дБ (очень распространенный случай):
<div id="1000">Mercedes</div>
<div id="1022">Audi</div>
<div id="1301">Ferrari</div>
<div id="1106">Lamborghini</div>
Чтобы добавить класс к конкретному, я обычно делал бы так:
<button _="on click add .green to #1022" type="button">
Click
</button>
Но что, если я не знаю
id
потому что это результат запроса дБ? Как я могу разместить переменную с помощью _hyperscript и установить ее с помощью javascript? Что-то вроде этого:
<button _="on click call setID() then add .green to ???" type="button">
Click
</button>
<script type="text/javascript">
function setID() {
// here the code to get the ID
return id;
}
</script>
Используя « символ »
it
прочитать результат последнего
call
возвращает ошибку:
_="on click call setID() then add .green to it"
возвращается
Uncaught TypeError: target.classList is undefined
1 ответ
Вы можете использовать строковые шаблоны внутри литералов запросов, поэтому должно работать что-то вроде этого:
<button _="on click add .green to <#${getIdToAddTo()}/>" type="button">
Click
</button>
где
<.../>
литерал запроса и
${getIdToAddTo()}
является строковым шаблоном в этом запросе
Другой альтернативой было бы создание метода, который возвращает div для добавления к:
<script>
function divToAddTo() {
return document.getElementById("whatever");
}
</script>
<button _="on click add .green to divToAddTo()" type="button">
Click
</button>