использование шаблонных литералов с атрибутом списка классов

#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. да, но это то, чего я пытался избежать