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