Tôi đang cố gắng sử dụng jQuery
để định dạng khối mã, đặc biệt để thêm một thẻ <pre>
bên trong thẻ <code>
:Làm cách nào để thêm thẻ trước vào trong thẻ mã với jQuery?
$(document).ready(function() {
$("code").wrapInner("<pre></pre>");
});
Firefox áp dụng định dạng một cách chính xác, nhưng IE đặt toàn bộ khối mã trên cùng một dòng. Nếu tôi thêm một cảnh báo
alert($("code").html());
Tôi thấy rằng IE đã chèn một số văn bản bổ sung vào thẻ trước:
<PRE jQuery1218834632572="null">
Nếu tôi tải lại trang, số lượng sau những thay đổi jQuery.
Nếu tôi sử dụng wrap()
thay vì wrapInner()
, để quấn <pre>
bên ngoài thẻ <code>
, cả IE và Firefox đều xử lý chính xác. Nhưng không nên <pre>
cũng hoạt động bên trong<code>
?
Tôi muốn sử dụng wrapInner()
vì tôi sau đó có thể thêm một lớp CSS cho thẻ <pre>
để xử lý tất cả các định dạng, nhưng nếu tôi sử dụng wrap()
, tôi có phải đặt trang định dạng CSS trong <pre>
thẻ và văn bản/font định dạng trong thẻ <code>
hoặc Firefox và IE đều bị nghẹn. Không phải là một vấn đề lớn, nhưng tôi muốn giữ nó càng đơn giản càng tốt.
Có ai khác đã gặp phải điều này không? Tui bỏ lỡ điều gì vậy?
Việc sử dụng thẻ mã có thể được coi là ngữ nghĩa hơn nhiều - không phải là nó làm cho nó chính xác. – nickf