2

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
  • 426,620
  • 70
  • 833
  • 800
Leo
  • 2,061
  • 4
  • 30
  • 58

1 Answers1

10

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
  • 426,620
  • 70
  • 833
  • 800