我几乎得到了这个,但只是需要一点点推动。我正在解析一个包含(可能)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
我无法弄清楚如何确定它只是一个空标签,只传递纯文本以及如何处理它。所以我需要一个测试来查看标签是否为空。不确定这是否是最佳方式。
答案 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中第一个元素为空的情况。