1

Is it possible to select element with interpolation? I have a var with a string

inputId = "awesomeInput"

and i would like to select input which has ID "awesomeInput". I tried to do it like i would normally do with jquery

$("#{inputId}")

console.log tells me that something was picked, but any function i try to perform on this object fails. There are no errors, but also no effects. Like this:

$("#{inputId}").show()

How can I select an element with jquery like this, and than show it?

mu is too short
  • 413,090
  • 67
  • 810
  • 771
Leo
  • 1,947
  • 4
  • 28
  • 53

1 Answers1

8

Given:

inputId = "awesomeInput"

Then this:

$("#{inputId}").show()

ends up as:

$("awesomeInput").show()

and that is trying to find <awesomeInput> elements, not id="awesomeInput" elements.

The # only has special meaning when it is immediately followed by { in a double quoted string so the # in "#pancakes" does not begin an interpolation nor does the first # in "##{x}".

You want this:

$("##{inputId}").show()

The first # is just a plain old hashmark, only the #{...} part will be replaced during interpolation.

mu is too short
  • 413,090
  • 67
  • 810
  • 771