2012-09-08 10 views
5

Xin chào Tôi đang cố gắng tạo biến trong jquery có chứa bảng để xuất trong các khu vực khác nhau của trang web. Nhưng nó cho tôi một lỗi, và tôi không hiểu tại sao. Đây là jQuery tôi:Tạo biến trong jquery với nội dung 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>"; 
    }); 

Làm thế nào tôi có thể đặt điều này trong một biến để tôi có thể sản lượng trong divs khác nhau như vậy:

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

Cảm ơn bạn trước để được giúp đỡ anyones!

+3

lỗi gì? .... – ComFreek

+2

Những câu trả lời dưới đây là chính xác, mặc dù tôi sẽ đề nghị một chiến lược hoàn toàn khác. Một trong đó sử dụng ít HTML bên trong JS của bạn. –

+0

Tiêu đề phải là "Tạo biến có nhiều dòng" –

Trả lời

3

Lỗi cú pháp do chuỗi được chỉ định sai.

nối các đường

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

cảm ơn bạn chỉ là ngắt dòng ... – liveandream

+0

Bạn được chào đón ... – Adil

3

Bạn chưa xử lý các dòng trả về trong chuỗi của mình. Bởi vì điều này, javascript giả định rằng cuối mỗi dòng là kết thúc của một câu lệnh. Rõ ràng mỗi dòng không phải là một câu lệnh hợp lệ. Ghép nối chuỗi của bạn như sau:

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

Bạn có thể nối chuỗi như nó đã được đề xuất. Hoặc cách khác là để thoát khỏi nhân vật dòng mới với dấu gạch chéo lại:

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

Khi tôi có html phức tạp này là những gì tôi làm . Tôi đặt html trong một kèm DIV và nhận được nội dung 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

Điều này rất thông minh. Tôi đã sử dụng phương pháp tiếp cận chuỗi html, về cơ bản tôi tạo một 'var html_str =

My HTML

' và sau đó thêm vào nó, từng dòng một, 'html_str + =

Điều này sẽ hiển thị bên dưới H1 của tôi!

'. Tuy nhiên điều này mất một ** thời gian dài ** để viết ra, và không phải là dễ dàng như vậy để đọc sau (mặc dù tôi indent nó để bắt chước các định dạng HTML) .. ugh ... Đi để cho phương pháp của bạn một đi ở đây, có lẽ một số có thể cau mày khi gắn các div ẩn trong phần dưới của HTML, nhưng theo một số cách, có lẽ nó tốt hơn là nhồi nhét vào một tệp JS như một chuỗi các chuỗi được nối ... Cảm ơn ý tưởng thông minh này .. – natureminded