将div作为字符串返回 - 但仅包含可见部分

时间:2011-07-31 03:31:52

标签: jquery html

有一个div #allContent,其中包含几个div。我想将整个#allContent作为字符串返回,但删除里面包含的任何不可见的div。

我想这可以通过filter():visiblecontents()的某种组合来实现,但我无法确切知道如何去做。

2 个答案:

答案 0 :(得分:4)

var clone = $('#allContent').clone()
                            .appendTo('body')
                            .find(':hidden')
                            .remove()
                            .end()
                            .remove();

var content = clone[0].outerHTML || $('<div>').append(clone).html();

示例: http://jsfiddle.net/ChXPB/3/

编辑:将其更改为包含outerHTML div。

编辑:使它大部分被链接,并修复了Firefox垫片。


似乎我们需要暂时将克隆添加到DOM。

这应该这样做:

$('#allContent').clone().find(':hidden').remove().end().html();

答案 1 :(得分:1)

var allContentsHtml = '';
$('#allContent div:visible')
        .each(function() { 
                   allContentsHtml += $(this).html(); 
                   }
              );

$('#output').html(allContentsHtml );