#javascript #methods #attributes #template-literals
Вопрос:
здесь новичок в javascript. Я пытаюсь реализовать шаблонные литералы для изменения второй части имени переменной при вызове метода переключения с атрибутом classlist. Вот что у меня есть:
bigBoxRight.classList.toggle("turnOff");
и это то, чего я пытаюсь достичь:
bigBox`${player}`.classList.toggle("turnOff");
Игрок может быть как «Правым», так и «Левым», и это строка. Возможно ли это вообще?
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Что бы я сделал, так это сохранил другую переменную, которая получит нужный вам элемент на основе вашего решения, а затем получит список классов для него
Например
const bigBoxRight = docemnt.querySelector...
const bigBoxLeft = docemnt.querySelector...
const elemRef = true* ? bigBoxRight : bigBoxLeft
elemRef.classList.toggle("turnOff");
*- Your logic for when you need the right or the left bigbox element
Решение Тима может быть чище, если вы знаете, когда вам нужен правый элемент или левый
Ответ №2:
Вместо того, чтобы пытаться динамически создавать имена переменных, вы должны сначала получить элемент, на который вы пытаетесь переключить класс.
Предполагая, что bigBoxRight или bigBoxLeft-это идентификатор элемента, вы можете использовать литералы шаблона, чтобы сначала получить элемент:
var elem = document.querySelector(`#bigBox${player}`)
Тогда вы можете сделать:
elem.classList.toggle("turnOff");
Комментарии:
1. да, но это то, чего я пытался избежать