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
  • 787
  • 12
  • 39

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
  • 13,156
  • 2
  • 34
  • 47
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>");
Rounin
  • 27,134
  • 9
  • 83
  • 108
0

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