所以我有动态内容,想要删除空元素和空子元素(如果有的话)。有几种情况发生:
HTML
<p> </p>
<p><img src="image.jpg" /></p>
<p><strong></strong></p>
的jQuery
$(".articleContent p").filter( function() {
return !($.trim($(this).text()).length) && !($(this).children().length);
}).hide()
问题是它没有考虑空子元素。我已经尝试过调整,它要么隐藏img,要么隐藏空子元素。
建议?
答案 0 :(得分:3)
.text()
方法获取所选元素及其所有后代的文本,因此您不需要测试子元素的文本。
$(".articleContent p").filter( function() {
$this = $(this);
return (!$.trim($this.text()).length && !$this.has('img').length);
}).hide()
答案 1 :(得分:3)
如果你删除了children()测试它似乎工作,text()会考虑选择器元素和所有后代的组合文本。
$(".articleContent p").filter(function () {
return !($.trim($(this).text()).length);
}).hide(); // or replace hide() with remove()