2012-09-08 10 views
5

Ciao Sto cercando di creare una variabile in jQuery che contenga una tabella per l'output in diverse aree di un sito web. Ma mi sta dando un errore, e non capisco perché. Ecco il mio JQuery:Creare una variabile in jQuery con contenuto HTML

var copy = "<table width='750' border='0' cellspacing='0' cellpadding='0'> 
    <tr> 
    <td>Tarifa valida desde:</td> 
    <td>Tarifa valida hasta:</td> 
    <td>Tarifa MXN</td> 
    <td>Tarifa USD</td> 
    </tr> 
    <tr> 
    <td><input type='text' name='from1' id='from1' class='date' /></td> 
    <td><input type='text' name='to1' id='to1' class='date' /></td> 
    <td><input type='text' name='mxn1' /></td> 
    <td><input type='text' name='usd1' /></td> 
    </tr> 
    <tr> 
    <td>Extra Pax MXN:</td> 
    <td>Extra Pax USD:</td> 
    </tr> 
    <tr> 
    <td><input type='text' name='exmxn1' /></td> 
    <td><input type='text' name='exusd1' /></td> 
    </tr> 
</table>"; 
    }); 

Come potrei mettere questo in una variabile in modo che può produrre in varie div come così:

$(".divExample").html(copy); 

Grazie in anticipo per anyones aiuto!

+3

Quale errore? .... – ComFreek

+2

Le risposte di seguito sono corrette, anche se vorrei suggerire una strategia completamente diversa. Uno che utilizza meno HTML all'interno del tuo JS. –

+0

Il titolo dovrebbe essere "Crea una variabile con più righe" –

risposta

3

Errore di sintassi dovuto alla stringa assegnata in modo errato.

concatenare le linee

var copy = "<table width='750' border='0' cellspacing='0' cellpadding='0'>" 
      + "<tr>"; 
    .... 
+0

grazie solo alle interruzioni di riga ... – liveandream

+0

Prego ... – Adil

3

Non hai gestito i ritorni di linea nella stringa. Per questo motivo, javascript presuppone che la fine di ogni riga sia la fine di una dichiarazione. Chiaramente ogni riga non è una dichiarazione valida. Concatenare la stringa in questo modo:

var "multi-"+ 
    "line "+ 
    "string"; 
2

Si potrebbe concatenare le stringhe come è stato suggerito. O un altro modo è quello di sfuggire caratteri di nuova riga con barra posteriore:

var html = "<table> \ 
    <tr>....</tr> \ 
    </table>"; 
2

Quando ho html complesso questo è quello che faccio . Ho messo il codice HTML in un racchiude DIV e ottenere il contenuto HTML

var copy = $('#mycomplexhtml').html(); //gets the content I placed in an hidden div 


<!-- I normally place this at the bottom-most part of the page --> 
<div id="mycomplexhtml" style="display:none"> 
    <table width='750' border='0' cellspacing='0' cellpadding='0'> 
    <tr> 
    <td>Tarifa valida desde:</td> 
    <td>Tarifa valida hasta:</td> 
    <td>Tarifa MXN</td> 
    <td>Tarifa USD</td> 
    </tr> 
... 
    </table> 
</div> 
+0

Questo è molto intelligente. Ho usato un approccio html string, dove fondamentalmente creo un 'var html_str =

My HTML

' e poi aggiungo, riga per riga come, 'html_str + =

Questo mostrerà sotto il mio H1!

'. Tuttavia questo richiede molto tempo ** per scrivere, e non è così facile da leggere più avanti (anche se indentizzo per simulare la formattazione HTML) ... ugh ... Andando a dare il tuo metodo, vai qui, forse alcuni potrebbero disapprovare attaccando i div nascosti nella parte inferiore dell'HTML, ma in qualche modo, forse è meglio che stipati in un file JS come un mucchio di stringhe concatenate ... Grazie per questa intelligente idea .. – natureminded

Problemi correlati