2017-06-28 4 views
2

Ich möchte mehrere Zeilen Code zu "myContent1" hinzufügen, ohne es replizieren zu müssen, da dies ziemlich mühsam sein kann. Gibt es einen effizienteren Weg? Vielen Dank!Mehrzeilige Ausgabe in JS

function getCode(form){ 
    myContent1 = document.inputForm.myContent1.checked; 
    output = 
     '<!DOCTYPE html>\n' + 
     '<html>\n' + 
     '<body>\n' + 
     ((myContent1) ? '<div>content 1</div>' : '') + '\n' + 
     ((myContent1) ? '<div>content 2</div>' : '') + '\n' + 
     '' + 
     '<\/body>\n' + 
     '<\/html>\n'; 
    document.inputForm.source.value = output; 
    return output; 
} 
+2

haben Sie versucht templ aß Literale? und ich bin nicht sicher, warum Sie dort HTML und Körper setzen –

+0

Sprechen Sie über die wiederholten ternären Ausdrücke in der Mitte Ihres Codes? Die am einfachsten zu lesende Option wäre die Verwendung eines "if" -Blocks, aber Sie könnten einen einzelnen ternären Ausdruck verwenden, um mehrere Strings gleichzeitig zu verketten: '(myContent1? '

content 1
' '+' someVar + '' : '') '. – nnnnnn

+0

Ich verstehe auch dein Ziel nicht. Ich werde sagen, HTML ignoriert Zeilenumbrüche und die meisten Leerzeichen, so dass sie nicht notwendig sind, um Ihre Seite zu erstellen. Das wird dir einige Zeichen ersparen ... – aduss

Antwort

2

Sie ES6 Template Literale verwenden die gleiche

Dies ist ein Beispielcode zu erreichen .Hope es

hilft ich den Code geändert haben auch die Bedingungen zu überprüfen

getCode() 
 

 
function getConditionalTemplate(x, y) { 
 

 
    if (Number(x) > Number(y)) { 
 
    return `<div>content1</div>` 
 
    } else { 
 
    return `<div>content2</div>` 
 
    } 
 
} 
 

 
function getCode() { 
 
    const myContent1 = document.getElementById('inputForm'); 
 
    const x = 10000; 
 
    const y = 200; 
 

 
    const output = 
 
    `<!DOCTYPE html> 
 
     <html> 
 
     <body> 
 
      ${getConditionalTemplate(`${x}`,`${y}`)} 
 
     <\/body> 
 
     <\/html>` 
 
    myContent1.innerHTML = output; 
 

 
}
<div id="inputForm"> 
 
</div>

+1

Sie benötigen den Wagenrücklauf nicht nach dem Doctype –