2012-03-17 30 views
13

Tôi làm cách nào để xóa phần tử chứ không phải nội dung bên trong yếu tố đó?Làm cách nào để xóa phần tử chứ không phải nội dung bên trong?

<a href="#"> 
    <span> 
     <img src="pic-1.jpg"/> 
    </span> 
</a> 

Tôi muốn loại bỏ các span rằng kết thúc tốt đẹp hình ảnh.

Vì vậy, tôi có thể nhận được,

<a href="#"> 

    <img src="pic-1.jpg"/> 

</a> 
+0

Bản sao có thể có của [Xóa thẻ HTML nhưng giữ bên trongHtml] (http://stackoverflow.com/questions/4232961/remove-a-html-tag-but-keep-the-innerhtml) – Dzyann

Trả lời

31

Bạn cần unwrap

$('img').unwrap(); 
+0

thats fab! cảm ơn! – laukok

+0

Ooh, chức năng đẹp. 1 để thực sự tìm kiếm thay vì làm những gì tôi đã làm. –

+0

Tôi biết đây là Hỏi & Đáp cũ, nhưng còn về việc mở văn bản thì sao? Có thể mở một phần tử nhưng làm thế nào về văn bản thuần túy? –

4

Các jQuery chức năng unwrap() là những gì bạn đang tìm kiếm:

Tháo cha mẹ của tập của các phần tử được so khớp từ DOM, để lại các phần tử phù hợp ở vị trí của chúng.

Khám phá the API doc page để biết thêm thông tin.

+0

thật tuyệt vời! :-) – laukok

1

Bạn sẽ phải thay đổi cấu trúc HTML của bạn một chút ở đây:

<a href="#" id="my_href"> 
    <span id="my_span"> 
     <img src="pic-1.jpg"/> 
    </span> 
</a> 

jQuery giải pháp:

$("#my_href").html($("#my_span").html()); 

Non jQuery giải pháp:

document.getElementById("my_href").innerHTML = document.getElementById("my_span").innerHTML; 
+3

Sử dụng HTML như thế này thường là một thực hành không tốt. Bạn đang phá hủy và tái tạo các nút thay vì chỉ đơn giản là di chuyển các nút để giữ lại, và loại bỏ các nút để loại bỏ. Nó cũng sẽ phá hủy bất kỳ trình xử lý hoặc dữ liệu nào khác được liên kết với phần tử 'img'. –

+2

Ah, thật sao? Được rồi, tôi sẽ tránh điều đó trong tương lai. :) –

+0

Đó là ** KHÔNG ** giải pháp jQuery! – gdoron

7
$(document).ready(function(){ 
    $span = $('span'); 
    $span.replaceWith($span.html()); 
}); 

xem ví dụ http://jsfiddle.net/vikastyagi87/Xaa39/6/

+0

Tôi nghĩ đây là câu trả lời hoàn chỉnh nhất vì nó cũng hoạt động cho việc mở văn bản (không chỉ các phần tử DOM) – viery365

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