1

是否可以通过 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>

提前致谢!

4

8 回答 8

3

尝试:

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

演示:http: //jsfiddle.net/Ydsg9/

于 2013-04-14T17:29:44.040 回答
2
$('#Gallery table').replaceWith(function(){
     return $(this).find('td *');
});

http://jsfiddle.net/ec46T/

于 2013-04-14T17:29:43.597 回答
2
$("#Gallery img").each(function(){
    $("#Gallery").append($(this));
});
$("#Gallery table").remove();

http://jsfiddle.net/hescano/jGT5b/

于 2013-04-14T17:33:26.030 回答
0

尝试这个:

$('#Gallery img').unwrap().unwrap().unwrap().unwrap();
于 2013-04-14T17:27:27.147 回答
0

另一种方法

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

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

选择器已优化,imgs变量仍然具有对插入的图像的引用#Gallery

于 2013-04-14T17:33:54.790 回答
0

这里是

var list = $('#Gallery table td *');
$('#Gallery').html(list.get());

你可以在这里玩它:http: //jsfiddle.net/cockypup/Dehgf/2/

CSS 只是为了表明表格正在消失。

于 2013-04-14T17:45:54.283 回答
0

如果您只期望<td>元素中的内容应该是,您可以使用以下内容:

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

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

    g.html(f);

});
于 2013-04-14T17:30:17.157 回答
0

工作小提琴

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

$("#Gallery").append(img);
$("table").remove();
于 2013-04-14T17:26:25.900 回答