0

我有一些这样的生成输出:

<figure>
    <a href="location.php"><img src=""></a>
</figure>

当我应用这个 JS 时:

$(funciton() {
    $('img').each(function(){
        if($(this).attr('src') == null || $(this).attr('src') == '')
            { 
                $(this).parent().remove();
            }
});

它删除了 img 标签,它是一个标签的父标签,但在页面上留下了这个输出:

<figure>
"&#8203"            ​
</figure>

如何删除 paren't 的父标签或只是修剪它以便不存在空白实体?当图形标签中有任何内容时,它的高度和 css 的边距为 1px。我可以更改css,但想弄清楚这一点,非常感谢帮助!

4

1 回答 1

1

如果您想确保<figure>在图像标签没有的情况下父标签为空.src,您可以这样做:

$(function() {
    $('img').each(function() {
        if(!this.src) { 
            $(this).closest("figure").empty();
        }
     }
});

.empty()删除元素中的所有子节点和任何文本。

请注意,我还简化了您对.src. 首先,这里不需要使用 jQuery,其次,一个测试可以检查任何空值。

如果您真的希望<figure>标签不占用页面上的空间,您也可以.hide()在其上执行 a。

于 2012-11-19T03:12:35.067 回答