2009-09-29 24 views
6

Nếu tôi có một thẻ div như thế này:

<span>Hi<br />SecondLine</span> 

Và tôi gọi hàm jQuery này:

var html = $('span').html(); 

html được thiết lập để:

Hi<br>SecondLine 

Bây giờ, tôi nhận ra tên của hàm là html() và không phải là xhtml(). Nhưng liệu hành vi mong đợi này? Tôi có thể tin tưởng vào nó hay tôi phải kiểm tra thẻ xhtml br và thẻ html br, ví dụ:

function br2nl(text) { 
    return text.replace(/<br \/>/gi, '\n').replace(/<br>/gi, '\n'); 
} 
+2

Tài liệu của bạn có thể được xử lý dưới dạng HTML chứ không phải là XHTML. – Gumbo

+0

Thêm mệnh đề insensitve đã thêm vào regex vì Firefox trả về chữ thường và IE trả về chữ hoa – slolife

Trả lời

9

Không. Nó chỉ sửa đổi DOM trình duyệt.

Trình duyệt có thể nối tiếp DOM thành HTML hoặc XHTML theo ý muốn khi sử dụng innerHTML. Các trình duyệt khác nhau hoạt động khác nhau.

3

Tất cả trình duyệt đều chuẩn hóa mã HTML trong khi xây dựng cây DOM của chúng. Vì vậy, javascript tăng quyền truy cập vào DOM đã chuẩn hóa. Với tất cả các thẻ được đóng đúng cách và như vậy.

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