2012-09-08 3 views
5

Salut J'essaie de créer une variable dans jquery qui contient une table pour la sortie dans différentes zones d'un site Web. Mais cela me donne une erreur, et je ne comprends pas pourquoi. Voici mon JQUERY:Créer une variable dans jquery avec le contenu 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>"; 
    }); 

Comment pourrais-je placer dans une variable afin que je puisse sortie dans différents divs comme si:

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

Merci à l'avance pour anyones aide!

+3

Quelle erreur? .... – ComFreek

+2

Les réponses ci-dessous sont correctes, bien que je suggère une stratégie tout à fait différente. Celui qui utilise moins de HTML à l'intérieur de votre JS. –

+0

Le titre devrait être "Créer une variable avec plusieurs lignes" –

Répondre

3

Erreur de syntaxe due à une chaîne affectée par erreur.

concaténer les lignes

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

merci c'était juste les sauts de ligne ... – liveandream

+0

Vous êtes les bienvenus ... – Adil

3

Vous n'avez pas traité les retours de ligne dans votre chaîne. Pour cette raison, javascript suppose que la fin de chaque ligne est la fin d'une instruction. Il est clair que chaque ligne n'est pas une déclaration valide. Concaténez votre chaîne comme suit:

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

Vous pourriez concaténer des chaînes comme il a été suggéré. Ou une autre façon est d'échapper à de nouveaux personnages en ligne avec barre oblique inverse:

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

:) Quand j'ai html complexe ce que je fais . Je mets le code html dans un enclos DIV et obtenir le contenu 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

C'est très intelligent. J'ai utilisé une approche de chaîne html, où fondamentalement je crée un 'var html_str =

Mon HTML

' et ensuite ajouter à lui, ligne par ligne comme, 'html_str + =

Cela montrera sous mon H1!

'. Cependant cela prend un ** temps long ** pour écrire, et n'est pas si facile à lire plus tard (même si je le mets en retrait pour imiter le formatage HTML) .. euh ... Je vais essayer votre méthode ici, peut-être que certains peuvent désapprouver le fait de coller des divs cachés dans le bas du HTML, mais à certains égards, c'est peut-être mieux que d'être entassés dans un fichier JS comme un tas de chaînes concaténées ... Merci pour cette idée géniale .. – natureminded

Questions connexes