Jquery 以字符串形式返回div-但仅返回可见部分

Jquery 以字符串形式返回div-但仅返回可见部分,jquery,html,Jquery,Html,有一个div#allContent,其中包含几个div。我想将整个#allContent作为字符串返回,但删除其中不可见的任何div 我想这可能可以通过组合使用filter(),:visible,和contents(),来实现,但我不知道具体怎么做 var clone = $('#allContent').clone() .appendTo('body') .find(':hidden

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

我想这可能可以通过组合使用
filter()
:visible
,和
contents()
,来实现,但我不知道具体怎么做

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

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

你想要HTML标记,还是仅仅是文本内容?是否有一个容器用于div#allContent?@Ehtesham-div#allContent是容器如果存在一个父容器用于div#allContent,我们不需要将其附加到body中?@Ehtesham:是的,我起初不确定是否应该包括它,但似乎应该包括在内,因此,我刚刚更新了Firefox补丁使用
outerHTML
。类似于
abc
的东西将变成
acb
$('#allContent').clone().find(':hidden').remove().end().html();
var allContentsHtml = '';
$('#allContent div:visible')
        .each(function() { 
                   allContentsHtml += $(this).html(); 
                   }
              );

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