检查包含html的字符串是否实际为空

时间:2013-10-25 06:59:50

标签: javascript jquery

我已经尝试过问这个问题,但很明显我没有说清楚,所以让我们再试一次。

假设我有一些我想检查的字符串变量。这个字符串可以由一些“fancy textarea”插件生成,来自ajax调用或者只是从一些WYSIWYG编辑器粘贴。无论如何,任务是编写一个函数来检查这个字符串是否为空。然而,虽然“空”我的意思是这个字符串不包含任何实际内容,所以如果它包含一些空标记,如<p><span></span></p>,它仍然被认为是空的。

另外,如果需要我可以修改它的内容,所以我虽然关于删除空节点但我不知道如何在不操作文档时这样做。如果我在文档上运行,我可以运行类似的东西:

$('*').each(function(index, item) {
    if($.trim($(item).text()) === "") {
        $(item).remove();
    }
});

所以问题是:我怎么能实现一个函数isEmpty(string) -> boolean来忽略给定字符串中的空html标签?

1 个答案:

答案 0 :(得分:2)

您可以通过解析字符串来调整代码:

function isEmpty(str){
    return $.trim($('<div>'+str+'</div>').text()) === "";
}

如果您拥有的内容不能解析为元素,则必须将字符串放在div中,例如"<div></div><span></span>someText"