如果 HTML 元素不包含任何内容,我希望能够删除它们。
假设我们有一些标记并针对所有 ' collapse
' 类:
<div class='collapse'>[CONTENT?]</div>
如果有一些内容,那么不要做任何事情。
但是如果没有内容 - 没有字符串字符或空格 - 则完全删除 div 元素。
这在简单的情况下很容易实现,但对于嵌套内容,它会稍微复杂一些。
这是一个演示,如果您尝试删除 [CONTENTX?] 字符串,然后查看 HTML 结构是什么,您会注意到它不能完全工作。
如果一个 div 只有其他没有内容的 div,那么应该将其视为没有字符或空格。
如果我们删除所有 [CONTENTX?] 字符串,那么我们应该看不到 HTML 结构。
有什么方法可以处理这个?
jsfiddle:http: //jsfiddle.net/97udq/
HTML:
<div id='container'>
<div class='collapse'>
[CONTENT1?]
</div>
<div class='collapse'>
[CONTENT2?]
<div class='collapse'>
[CONTENT3?]
<div class='collapse'>[CONTENT4?]</div>
<div class='collapse'>[CONTENT5?]</div>
</div>
</div>
</div>
Javascript:
$(function(){
// function
collapse();
// Show HTML structure
alert($('#container').html());
});
function collapse(){
// Loop thru all collapse elements
$('.collapse').each(function(){
// Check for pure whitespace
if($(this).html().replace(/\s+/g, '').length==0){
// Nothing to see, so remove.
$(this).remove();
}
});
}
CSS:
.collapse{
height:20px;
border:1px solid red;
}