2012-02-09 29 views
5

Có cách nào để lưu trữ một đoạn mã HTML trong một biến bằng cách sử dụng Javascript hoặc jQuery như thế này? (Rõ ràng đó là một tổ chức phi làm việc một ví dụ)Làm thế nào để lưu trữ một đoạn mã HTML và chèn nó sau này trong tài liệu?

var mysnippet = << EOF 
<div class="myclass"> 
    <div class="anotherclass"> 
    Some dummy text 
    </div> 
</div> 
EOF 

Và sau đó chèn nó trong tài liệu sử dụng jQuery:

mysnippet.append($('#someelement')); 

EDIT:

Xin vui lòng, đọc trước khi trả lời của nhận xét: Những gì tôi có là một đoạn mã HTML thô bên trong tệp JS của tôi và tôi cần lưu trữ nó trong biến Javascript bằng cách sử dụng thứ gì đó giống như tại công trình EOF. Tôi cần tránh đặt nó giữa các dấu ngoặc kép.

Nếu không thể sử dụng Javascript và/hoặc jQuery, thì câu hỏi không có giải pháp.

+2

$ (mysnippet) .append (#someelement) – ZiTAL

+0

Vì không có trình chỉnh sửa tập tin hợp lý hoặc linter nào làm nổi bật tệp js của bạn một cách chính xác, tôi chắc chắn là ** luôn luôn tốt hơn ** để đặt HTML trong một tệp '.html' riêng biệt, và sau đó đọc nó bằng' $ .get ("mysnippet.html") '. Sau đó bạn có thể linh hoạt chỉnh sửa DOM của đối tượng mới trước khi thêm Hơn nữa, HTML và JS có thể được tạo dễ dàng, đồng thời nó tách dữ liệu khỏi mã, điều này luôn là điều tốt cho việc kiểm chứng trong tương lai –

Trả lời

1

Bạn có thể sử dụng các mẫu javascript như ejs, haml-coffee ...

+0

Tôi đánh dấu câu trả lời của bạn là câu trả lời hợp lệ. e cách duy nhất để làm những gì tôi cần. Sử dụng erb ví dụ (Rails templating language) Tôi có thể render một đoạn mã HTML bên ngoài và thoát nó bằng một trình trợ giúp Rails, vì vậy cuối cùng tôi có thể lưu nó vào một biến để gắn nó vào tài liệu. –

4

Chỉ nhận mã HTML của div bạn muốn theo var content = $('#somediv').html(); và sau đó nối nó vào một số div sau này! $('#otherdiv').append(content);

$().html(); cung cấp Nội dung HTML của div đó. tài liệu: http://api.jquery.com/html/

$().append(<content>); nối Nội dung vào div đặc biệt. documentatoin: http://api.jquery.com/append/

+0

Mã HTML mà tôi muốn chắp thêm cần phải ở định dạng mà tôi đã viết ra Câu hỏi của tôi, nó chưa tồn tại trong tài liệu –

+0

được rồi chỉ cần sử dụng phương thức .append() –

0

Yes. Fiddle example

Javascript

var html = '<b>Bold</b>' 
$('.anotherclass').append(html); 

HTML

<div class="myclass"> 
    <div class="anotherclass"> 
    Some dummy text 
    </div> 
</div> 
1

Bạn có thể viết:

var mysnippet = "<div class='myclass'>"+ 
    "<div class='anotherclass'>"+ 
    "Some dummy text"+ 
    "</div>"+ 
"</div>"; 

và sau đó chèn được sử dụng append chức năng (mất đoạn như là đối số).

0

Rất tiếc, không có gì giống như << EOF khả dụng. Dưới đây là một giải pháp:

$el = $('<div />') 
    .addClass('myClass') 
    .append(
    $('<div />') 
     .addClass('anotherclass') 
     .text('Foo Bar') 
); 
0

Suy nghĩ về cùng một vấn đề tôi đã tìm thấy cuộc thảo luận này. Những gì tôi có trong tâm trí là để đặt một ẩn textarea, có chứa html, và sau đó lấy html từ đó.

Do đó sẽ không có xung đột với id DOM kép, vì nội dung textarea không được hiển thị dưới dạng html.

0

Đối với những người gặp phải vấn đề này ... Bạn có thể sử dụng thẻ <template> mới trong HTML5. Nó vẫn không lưu trữ HTML trong JavaScript không may: (

+0

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/template – Sean

Các vấn đề liên quan