我想在添加之前检查页面上是否已存在列表项。我的下面的代码试图通过检查列表项的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>");
}
}
答案 0 :(得分:1)
将代码直接复制到jsFiddle似乎可以按预期工作,并对ID进行一些假设。您确定要正确构建ID吗?
修改强>
再次查看您的代码,看起来您在创建的列表项的ID中包含#,这意味着您正在创建类似
的内容<li id="#new-dma" />
这意味着您的选择器永远不会匹配,因此您的if语句将始终为true。
答案 1 :(得分:0)
if ( ! $(liID).length ) {
// the selector is empty
}
仔细检查以确保选择器正常。
答案 2 :(得分:0)
您的代码运行正常,所以我的猜测是您的ID无法正确使用。在if
语句(webkit开发工具的firebug)上设置一个断点,看看你的liID
是什么。