2012-08-31 8 views
5

Ich habe eine grundlegende quastion. Kann ich einen HTML-Code in JS einfügen? (Mit "document.write")enthalten HTML-Code in js

Das ist mein HTML-Code:

<li><a href="#" class="menulink">text</a></li> 
<li><a href="#" class="menulink">text</a> </li> 
<li><a href="#" class="menulink">text</a> 
    <ul> 

     <li> 
      <a href="#" class="sub">text</a> 
      <ul > 
       <li class="topline"><a href="#">text</a></li> 
       <li><#">text </a></li> 
       <li><a href="#">text</a></li> 
       <li><a href="#">text</a></li> 
       <li><a href="#">text</a></li> 
       <li><a href="#"text</a></li> 
       <li><a href="#">text</a></li> 

      </ul> 
     </li> 
     <li> 
      <a href="#" class="sub">text </a> 
      <ul> 
       <li class="topline"><a href="#">text</a></li> 
       <li><a href="#">text</a></li> 



    </ul> 
</li> 

    <li> 
        <a href="#" class="sub"> text </a></li> 
      <li> 
        <a href="#" class="sub"> text </a></li> 
      </ul> 
     </li> 

      <li> 
    <a href="#" class="menulink">text</a> 


</li> 
<li><a href="#" class="menulink">text</a> 

und ich möchte es sind in dieser Code JS

window.onload = function() { 
    document.getElementById("menu").innerHTML=""; 

es eine Verbindung von diesem Code:

<p id="dropdown_menu"></p> 

wie kann ich es tun?

der vollständige Code ist hierhttp://jsfiddle.net/tsnave/eSgWj/4/ Dank ..

+0

ich habe den code geändert ... bitte helft mir ... –

Antwort

2
document.getElementById("menu").innerHTML=' 
    <li class="topline"><a href="#">some text</a></li> 
    <li><a href="#">some text </a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#"some text</a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#">some text</a></li> 
'; 

Alles, was ich wirklich die Anführungszeichen zu einfachen Anführungszeichen wechseln tat, war, so dass die HTML-Attribute die Zeichenfolge up not mess tun. Wenn Sie in die Zeichenfolge innerHtml einfache Anführungszeichen setzen müssen, können Sie sie mit einem umgekehrten Schrägstrich zurücklassen, z. B .: innerHtml = ' Don\'t break me';

+0

ich habe es versucht ... es funktioniert nicht .. warum? –

+0

Was funktioniert daran nicht? Bekommst du einen Fehler? – Dunhamzzz

+0

no ... Ich kann den Text im Browser nicht sehen ... –

2

können Sie tun:

document.getElementById("menu").innerHTML="<div>hello</div>" 
9

kann ich schließen HTML-Code in JS?

Wenn Sie damit meinen, können Sie HTML über Javascript ausgeben, dann ist die Antwort ja, z.

window.onload = function() { 
    document.getElementById("menu").innerHTML = '<li class="topline"><a href="#">some text</a></li> 
       <li><a href="#">some text </a></li> 
       <li><a href="#">some text</a></li> 
       <li><a href="#">some text</a></li> 
       <li><a href="#"some text</a></li> 
       <li><a href="#">some text</a></li> 
       <li><a href="#">some text</a></li>'; 
} 
0
window.onload = function(){ 
    document.getElementById("menu").innerHTML='<li class="topline"><a href="#">some text</a></li><li><a href="#">some text </a></li><li><a href="#">some text</a></li><li><a href="#">some text</a></li><li><a href="#"some text</a></li><li><a href="#">some text</a></li><li><a href="#">some text</a></li>'; 
} 

Editiert:

Es sollte funktionieren.

<script type="text/javascript"> 
window.onload = function(){ 
    document.body.innerHTML = 
     '<li><a href="#" class="menulink">text</a></li>' 
     +'<li><a href="#" class="menulink">text</a></li>' 
     +'<li><a href="#" class="menulink">text</a><ul>' 
     +'<li><a href="#" class="sub">text</a><ul>' 
     +'<li class="topline"><a href="#">text</a></li>' 
     +'<li><a href="#">text </a></li><li><a href="#">text</a></li>' 
     +'<li><a href="#">text</a></li><li><a href="#">text</a></li>' 
     +'<li><a href="#"text</a></li><li><a href="#">text</a></li></ul>' 
     +'</li><li><a href="#" class="sub">text </a><ul>' 
     +'<li class="topline"><a href="#">text</a></li>' 
     +'<li><a href="#">text</a></li></ul></li>' 
     +'<li><a href="#" class="sub">text</a></li>' 
     +'<li><a href="#" class="sub">text</a></li>' 
     +'</ul></li><li><a href="#" class="menulink">text</a></li>' 
     +'<li><a href="#" class="menulink">text</a>'; 

} 

+1

Ich habe die Bearbeitung rückgängig gemacht, weil JS Zeilenumbrüche in Strings nicht unterstützt. – Florent

+0

Hallo. Danke! Ich ändere den Code oben und jetzt funktioniert deine Lösung nicht ... kannst du mir bitte helfen? –

+1

stellen Sie sicher, es gibt ein HTML-Element mit ID = "Menü" und führen Sie diesen Code nach der Seite geladen, modifiziert die Antwort versuchen Sie es, sollte funktionieren. –

7

Eine andere Art und Weise, es zu tun ist, um die HTML in einem Script-Tag zu setzen:

<script type="text/template" id="myHtml"> 
    <li class="topline"><a href="#">some text</a></li> 
    <li><a href="#">some text </a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#"some text</a></li> 
    <li><a href="#">some text</a></li> 
    <li><a href="#">some text</a></li> 
</script> 

Dann können Sie es in Javascript bekommen

var myHtml = document.getElementById('myHtml').innerHTML; 

mit oder Verwenden Sie eine von mehreren Bibliotheken, die Ihnen dabei helfen. Code in einem Skript-Tag mit type="text/template" wird vom Browser nicht interpretiert oder angezeigt. Der Vorteil dieses Ansatzes gegenüber dem direkten Einfügen in eine Zeichenfolge in Javascript ist, dass Sie es weiterhin als normalen HTML-Code in Ihrem Editor behandeln können und das Javascript sauber bleibt. Siehe auch this post by John Resig.

Verwandte Themen