Estoy tratando de crear divs con Javascript:
var v = e[c].day; var m = g(new Date(t, n - 1, v)) ? '<div id=`${v}/${v}/${y}` class="today" type="button" onclick="addRow()">' : '<div type="button" onclick="addRow()">'; l.append(m + "" + '<span class="month">' + i[n-1]+ "</span>" + "" + v + "</div>"); Entonces, lo que estoy tratando de hacer es dar la identificación a los divs con la fecha y cuando trato de hacer esto id= ${v}/${v}/${y} se escribe exactamente así: $ {v}/${v}/${y} en lugar de la fecha. Aparentemente, t es un año, n es un mes yv es un día. Entonces, ¿cómo puedo darles una identificación como esta ${v}/${v}/${y} ?
Rodea toda la cadena con acentos graves:
`<div id="${v}/${v}/${y}" class="today" type="button" onclick="addRow()">`Consulte ¿Cuáles son los valores válidos para el atributo id en HTML? .
En la primera salida de su declaración ternaria, parece que está devolviendo la cadena usando comillas simples en lugar de acentos graves.
Sospecho que backticks es lo que necesitas:
var v = e[c].day; var m = g(new Date(t, n - 1, v)) ? `<div id="${v}/${v}/${y}" class="today" type="button" onclick="addRow()">` : '<div type="button" onclick="addRow()">'; l.append(m + "" + '<span class="month">' + i[n-1]+ "</span>" + "" + v + "</div>");div es una etiqueta de cierre, por eso debe cerrar cada div en su código