有一个div #allContent
,其中包含几个div。我想将整个#allContent
作为字符串返回,但删除里面包含的任何不可见的div。
我想这可以通过filter()
,:visible
和contents()
的某种组合来实现,但我无法确切知道如何去做。
答案 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 );