4

我目前正在使用带有 jQ​​uery 命令的 .js 文件来查找 .xml 文件的某些元素。我已经能够轻松收集我想要的所有数据,但是在演示时遇到了一些困难。

我使用相同的 .js 脚本来加载多个 .xml 文件。数据以 html 文档和列表形式收集。这是代码:

        $upgrade1 = $(xml).find("upgrades").eq(0).next();
        $upgrade2 = $(xml).find("upgrades").eq(1).next();
        $upgrade3 = $(xml).find("upgrades").eq(2).next();
        $("#upgrades").append($upgrade1.text() + "<li>" + $upgrade2.text() + "</li><li>" + $upgrade3.text() + "</li>");

现在您可以看到,选择器首先编译它们需要的文本,然后将其添加到<li class ="upgrades">. <li>现在这里的问题是一些 .xml 文件将只有 1 或 2 次升级,而不是全部 3 次。但由于.append() 中的元素,该函数仍会绘制空白项目符号

最简单的解决方案是使用 if 语句,但是我似乎无法在任何地方找到如何检查选择器是否为空白?只提到了检查表单元素,但这对我没有帮助。可能是一种检查空字符串或少于 1 个字符的字符串的方法?我不知道...

有没有人有任何想法?

4

2 回答 2

8

使用length.

if ($('whatever').length == 0) {
  // It's empty
}
于 2013-04-04T19:45:54.903 回答
2

您还可以通过在查询中调用 each 来隐式使用您的选择器。

$("whatever").each(function () {
    var ctl = $(this);
    ctl.text("bob jones");
});

通过这种方式,您会自动放弃没有返回任何结果的实例。

于 2013-04-04T19:48:54.983 回答