1

I am trying to create divs with 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>");

So what I am trying to do is giving the id to the divs with the date and when I try to do like this id=${v}/${v}/${y} it is being written exactly like this: ${v}/${v}/${y} instead the date. So apparently, t is a year, n is a month and v is a day. So how can I give them an id like this ${v}/${v}/${y}?

magic bean
  • 687
  • 13

3 Answers3

2

Surround the whole string with backticks:

`<div id="${v}/${v}/${y}" class="today" type="button" onclick="addRow()">`

See What are valid values for the id attribute in HTML?.

MikeM
  • 12,105
  • 2
  • 30
  • 45
1

In the first output of your ternary statement it looks like you're returning the string using single quotes instead of backticks.

I suspect backticks is what you need:

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>");
0

div is a closing tag that's why you must close every div in your code