Skip to content

Bad handling of complex DOM ids using querySelector

Using the statement:

document.querySelector(`#${ id }`)

where id is a string representing a DOM id can only handle a certain subset of allowable id strings. For example, whitespace will break this, because querySelector parses the given query string as a CSS query selector.

To fix, use document.getElementById for queries against element ids:

document.getElementById(`${ id }`)