2012-09-08 5 views
5

Hola, estoy tratando de crear una variable en jquery que contenga una tabla para generar en diferentes áreas de un sitio web. Pero me está dando un error, y no entiendo por qué. Aquí está mi JQUERY:Crear una variable en jquery con contenido 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>"; 
    }); 

¿Cómo podría colocar esto en una variable de modo que puede dar salida en varios divs como tan:

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

Gracias de antemano por los anyones ayuda!

+3

¿Qué error? .... – ComFreek

+2

Las respuestas a continuación son correctas, aunque yo sugeriría una estrategia totalmente diferente. Uno que usa menos HTML dentro de su JS. –

+0

El título debería ser "Crear una variable con varias líneas" –

Respuesta

3

Error de sintaxis debido a una cadena asignada incorrectamente.

concatenar las líneas

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

gracias fue solo la línea de ruptura ... – liveandream

+0

De nada ... – Adil

3

No ha manejado los retornos de línea en su cadena. Debido a esto, javascript asume que el final de cada línea es el final de una declaración. Claramente, cada línea no es una declaración válida. Concatenar su cadena como lo siguiente:

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

usted podría concatenar cadenas, como se sugirió. Otra forma es escapar caracteres de nueva línea con barra invertida:

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

Cuando tengo html complejo esto es lo que hago . Pongo el html en un encerrando DIV y obtener el contenido 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

Esto es muy inteligente. He estado usando un enfoque de cadena html, donde básicamente creo un 'var html_str =

Mi HTML

' y luego lo agrego, línea por línea como, 'html_str + =

¡Esto se mostrará debajo de mi H1!

'. Sin embargo, esto lleva ** un largo tiempo ** para escribir, y no es tan fácil de leer más tarde (aunque lo muerdo para imitar el formato HTML) .. ugh ... voy a dar un método aquí, tal vez algunos pueden fruncir el ceño al colocar divisiones ocultas en la parte inferior del HTML, pero de alguna manera, tal vez es mejor que meterse en un archivo JS como un montón de cadenas concatenadas ... Gracias por esta idea inteligente ... – natureminded

Cuestiones relacionadas