使用$ .length()检查<li>是否存在</li>

时间:2012-01-26 21:18:20

标签: jquery

我想在添加之前检查页面上是否已存在列表项。我的下面的代码试图通过检查列表项的ID长度来做到这一点。但是,无论我的if语句总是解析为true。有人能告诉我问题是什么吗?

function addSpotsToMarketTree(dmaName, spot) {
    var id = "#" + dmaName + "-spots";
    var liID = "#" + spot + "-" + dmaName;
    if ($(liID).length == 0) {
        $(id).append("<li id='" + liID + "'>" + spot + "</li>");
    }
}

3 个答案:

答案 0 :(得分:1)

将代码直接复制到jsFiddle似乎可以按预期工作,并对ID进行一些假设。您确定要正确构建ID吗?

修改

再次查看您的代码,看起来您在创建的列表项的ID中包含#,这意味着您正在创建类似

的内容
<li id="#new-dma" />

这意味着您的选择器永远不会匹配,因此您的if语句将始终为true。

Live Demo

答案 1 :(得分:0)

if ( ! $(liID).length ) {
    // the selector is empty
}

仔细检查以确保选择器正常。

答案 2 :(得分:0)

您的代码运行正常,所以我的猜测是您的ID无法正确使用。在if语句(webkit开发工具的firebug)上设置一个断点,看看你的liID是什么。