jQuery确定标记是否为空

时间:2010-02-24 09:07:15

标签: jquery

我几乎得到了这个,但只是需要一点点推动。我正在解析一个包含(可能)HTML的字符串。这是代码:

function clean(snippet) {
   OBJ = $(snippet);
   txt = OBJ.text();

    if(txt) { 
      parsed = txt;
    } else {
        parsed = snippet;
    }
    return parsed;
}

以下是我的测试用例:

alert(clean("<div>Randomness</div>")); // Alerts "Randomness"
alert(clean("Randomness"));            // Alerts "Randomness"
alert(clean("<div></div>"));           // Alerts "<div></div>" - should be blank

我无法弄清楚如何确定它只是一个空标签,只传递纯文本以及如何处理它。所以我需要一个测试来查看标签是否为空。不确定这是否是最佳方式。

3 个答案:

答案 0 :(得分:1)

您可以测试您的查询是否返回任何对象:

function clean(snippet) {
   OBJ = $(snippet);
   if(OBJ.length == 0)
      return snippet;
   txt = OBJ.text();
   return txt;
}

答案 1 :(得分:0)

您正在测试该文本不为空。试试这个。

if (txt == '')

答案 2 :(得分:0)

如果你有html,你可以这样做:

root = $(snippet);
if (root.text().length > 0) {
  return snippet;
}
if (root.find(":first")) {
   return snippet;
}

这不处理div中第一个元素为空的情况。

相关问题