1

Expected result is the second line should be bold:

it's regular
it's bold

I have this code and I want to separate the tag. The html output is : the "it's bold" is outside the . Is it possible to separate the html tag using multiple innerHTML?

var content = document.getElementById("content");
content.innerHTML += "it's regular";
content.innerHTML += "<br><b>";
content.innerHTML += "it's bold";
content.innerHTML += "</b>";
<div id="content"></div>   
1
  • just add content.innerHTML = ''; as 2nd line in your code Commented Aug 3, 2021 at 8:33

2 Answers 2

3

Because you are writing straight to the innerHTML of the element, your browser is working overtime between the four lines (where you change the innerHTML) to make sure the HTML makes sense. In the second line, you add an un-closed <b>-tag, so the browser does whatever it can to make sure it makes sense after this change: It closes the tag. Now, when you later add text, and then add a closing tag - it doesn't make sense to close an already closed tag.

I recommend you use an intermediary variable here, it will allow you to do almost the exact same thing as before. Example below.

var content = document.getElementById("content");
let newHtml = ''
newHtml += "it's regular";
newHtml += "<br><b>";
newHtml += "it's bold";
newHtml += "</b>";
content.innerHTML = newHtml
<div id="content"></div>   

Sign up to request clarification or add additional context in comments.

2 Comments

Another way would be to simply do var content = document.getElementById("content"); content.innerHTML = `it's regular<br/><b>it's bold</b>`;
That's true. If it is an option, he could easily do document.getElementById("content").innerHTML = "it's regular<br/><b>it's bold</b>"
0

Why do you need to do that in multiple line? Simply you can do it in one line:

var content = document.getElementById("content");
content.innerHTML += "it's regular<br/><b>it's bold</b>";

But if you insist on to do that in multiple line, it is good idea to use a variable and after a valid html append it to your html:

var content = document.getElementById("content");
let firstlineHtml= "it's regular";
firstlineHtml += "<br><b>";
firstlineHtml += "it's bold";
firstlineHtml += "</b>";

content.innerHTML = firstlineHtml;
<div id="content"></div>   

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.