Home > Back-end >  vs code wrap multiple line in quote
vs code wrap multiple line in quote

Time:02-28

I am new to vscode and and hardly get bothered by one thing.

var template = "<div>
                  <input type="text" >  
                  <input type="text" > 
                  <input type="text" >  
                  <input type="text" > 
                  <input type="text" > 
                </div> "

I have no clue why vscode is not wrapping all those line in quote. It just throws a syntax error. It reads when they aligned in one line but when I break the line to make it look good, the code is not working. Any idea?

CodePudding user response:

You can do like this:

var template = `
  <div>
    <input type="text" >  
    <input type="text" > 
    <input type="text" >  
    <input type="text" > 
    <input type="text" > 
  </div>
`;
                    
document.body.innerHTML = template;

If you aren't familiar with template strings here is the MDN documentation.

CodePudding user response:

You can try this way. Just use single quotes to surround the variable string, and use backslashes to change lines.

var template = '<div>\
                  <input type="text" > \
                  <input type="text" > \
                  <input type="text" > \
                  <input type="text" > \
                  <input type="text" > \
                </div>';
                
document.body.innerHTML = template;

CodePudding user response:

It fails because of multiple reasons:

  1. You use double-quotes both to open and closing the variable aswell as the attributes. The opening double-quote of the first attribute already closes the variable therefor.
  2. A JS variable is not allowed to have linebreaks.
  3. you do not close the variable with a semicolon or comma (in case more variables follow)

The only way you can fix it is like in the example below. You have to open and close the variable and use a to continue the variable in the next line:

var template = '<div>'  
                 '<input type="text" >'  
                 '<input type="text" >'  
                 '<input type="text" >'  
                 '<input type="text" >'  
                 '<input type="text" >'  
               '</div>';
            
document.body.innerHTML = template;

CodePudding user response:

or you can

var template = '<div>\
                  <input type="text" >\
                  <input type="text" >\
                  <input type="text" >\
                  <input type="text" >\
                  <input type="text" >\
                </div>'
  • Related