Reputation: 28513
I'm generating content dynamically and in some instances, I need to set a
as the only content of a <span>
element.
However, the following adds
as text vs adding a empty space:
var foo = document.createElement("span")
foo = document.createTextNode(" ");
which makes sense, so I'm wondering, how would I add
correctly without (!) using innerHTML
Thanks for help!
Upvotes: 47
Views: 76728
Reputation: 51
Append the non breaking space to your parent node, let us refer to it as "parent" below i.e.:
parent.append("\u00A0");
source: https://developer.mozilla.org/en-US/docs/Web/API/ParentNode/append
Upvotes: 5
Reputation: 11474
If you don't want to use innerHTML
, you can use a hexadecimal escape.
The most common:
\x20
– standard space or \s
\xC2\xA0
– non-breaking space or
\x0D
– carriage return or \r
\x0A
– newline or \n
\x09
– tab or \t
In your case: \xC2\xA0
Upvotes: 18
Reputation: 141648
You can use a unicode literal for a non breaking space:
var foo = document.createTextNode("\u00A0");
Upvotes: 112