2011-12-27 24 views
6
<div> 
    <a href="#" class="selected">link1</a> 
    <a href="#">link1</a> 
</div> 

và sử dụng sauđược tự HTML code với jQuery

$('.selected').html() tôi nhận được

link1

như một giá trị trả về.

Làm thế nào tôi có thể nhận được mã html đầy đủ của phần tử DOM được lựa chọn, trong ví dụ này để có được

<a href="#" class="selected">link1</a>

để thay thế?

nhờ

+0

Có. chỉ $ ('. selected'). parent(). html() sẽ hoạt động. –

+1

@Umesh điều này sẽ không hoạt động nếu có một số anh chị em, cũng sẽ được bao gồm. – Armin

+0

@Armin, Chế độ xem được chấp nhận :) –

Trả lời

10

jQuery đối tượng:

$('.selected') 

trở thành đối tượng DOM:

$('.selected')[0] 

CẬP NHẬT:

var str = $("<div />").append($('.selected').clone()).html(); 
console.log(str); 
+0

Điều đó sẽ cho anh ta đối tượng DOM, không phải chuỗi html ... – Deleteman

+0

Ồ, bạn nói đúng. – akai

+0

Đây không phải là "bản sao" một chút đau đớn khi có rất nhiều dữ liệu? – elhoyos

12

Tôi biết rằng điều này hoạt động trên Chrome, không biết về phần còn lại:

$("#yourElement")[0].outerHTML 

Đó là tài sản từ javascript (không jQuery) và cung cấp cho bạn những gì bạn đang tìm kiếm .

+0

tính năng này không hoạt động trong Firefox – Kupe3

+0

Mozilla cho biết nó hiện đang hoạt động như Firefox 11: https://developer.mozilla.org/en-US/docs/Web/API/Element.outerHTML – Dwayne

+0

Hoạt động trong FireFox 47, IE11, Opera 38 – ChelowekKot

0

Đơn giản chỉ cần sử dụng outerHTML sở hữu có thể không hoạt động trên tất cả các trình duyệt. Bạn sẽ cần phải tự tuần tự hóa cho các trình duyệt mà không cần hỗ trợ cho outerHTML. Xem bài đăng này cho một lời giải thích: How do I do OuterHTML in firefox?

4

tôi đã thực hiện một giải pháp tương tự như trên, nhưng không có nhân bản.

var test = $('#test').wrap('<div class="wrap-unwrap"></div>'); 
var str = test.parent().html(); 
test.unwrap(); 
console.log(str); 
Các vấn đề liên quan