Estoy tratando de insertar el valor de la variable newData123 en el atributo de test .
Pero inserta el nombre de variable newData123 en lugar de su valor 456 ...
¿Qué estoy haciendo mal?
editado
La razón por la que no uso directamente elm.setAttribute('test', 'newData123'); es que necesito extraer los datos dinámicamente de otro script como el siguiente:
const newData123 = '456', newData456 = '789';Y es por eso que necesito usar la plantilla literal aquí de forma programática en lugar de codificarla.
const elm = document.querySelector('.test'), data = '123', newData123 = '456'; elm.setAttribute('test', `newData${data}`); const check = elm.getAttribute('test'); console.log(check); <p class="test"></p>Sería mucho más seguro si formatearas todas tus variables newData en un objeto de algún tipo.
const data_obj = { newData123: '456', newData456: '123' } const data = '123' console.log(data_obj[`newData${data}`]) // 456 const data2 = '456' console.log(data_obj[`newData${data2}`]) // 123Dado que JS es un poco confuso con los tipos de datos, incluso podría hacer algo como esto, lo que requeriría una refactorización mínima:
const newData = { 123: '456', 456: '123' } let data = '123' console.log(newData[data]) // 456 data = '456' console.log(newData[data]) // 123 console.log(newData[123]) // 456