2013-04-14 120 views
1

是否可以通過jquery刪除「TABLE,TR,TD」標籤,但不應刪除表內的內容。通過jQuery刪除TABLE,TR,TD標籤

即下面是我的表代碼包含圖像,我想刪除圖像周圍的表,tbody,tr和td標籤。

代碼jQuery的

<div id="Gallery"> 
    <table> 
     <tbody> 
     <tr> 
      <td><img src="image1.jpg"></td> 
     </tr> 
     <tr> 
      <td><img src="image2.jpg"></td> 
     </tr> 
     <tr> 
      <td><img src="image3.jpg"></td> 
     </tr> 
     </tbody> 
    </table> 
</div> 

之前的代碼應該是jQuery的後提前

<div id="Gallery"> 
    <img src="image1.jpg"> 
    <img src="image2.jpg"> 
    <img src="image3.jpg"> 
</div> 

謝謝!

回答

0

Working Fiddle

var img = ""; 
$("td").each(function(){ 
    img = img + $(this).html(); 
}); 

$("#Gallery").append(img); 
$("table").remove(); 
+0

您在'each(function()'之後缺少一個'{'',如果糾正了它,則會在圖像前面添加'undefined' – Ejaz

+0

謝謝@Ejay ..我更正了問題 –

+1

使用'.html()' jQuery事件處理程序和數據丟失 – Ian

0

試試這個:

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

有趣的aproach,雖然不像其他結構靈活。 –

3

嘗試:

var gallery = $("#Gallery"); 
var contents = gallery.find("td, th").contents().detach(); 
gallery.find("table").remove(); 
gallery.append(contents); 

DEMO:http://jsfiddle.net/Ydsg9/

+1

好的使用'.detach()'! –

+0

DEMO UPDATED:http://jsfiddle.net/Ydsg9/36/ – sqlchild

0

如果你只期待<td>元素中的內容,你應該是,你可以使用以下命令:

$(function(){ 
    var g = $('#Gallery'), 
    f = ''; 

    $('td', g).each(function(){ 
     f += $(this).html(); 
    }); 

    g.html(f); 

}); 
0

的另一種方式這樣做

 var gallery = $("#Gallery"); 
     var imgs = $("img", gallery).clone(); 

     $("table", gallery).remove(); 
     gallery.append(imgs); 

選擇進行了優化和imgs變量還是要插在#Gallery