【发布时间】:2016-01-11 21:07:51
【问题描述】:
我有一个奇怪的问题。我尝试创建一个 jsfiddle,但没有得到相同的结果,所以很抱歉我不能分享更多我拥有的东西。
var parent = id && Number(oldParent) !== 1 ? $('#main_container #item_' + itemId).parent().parent().prev() : null;
这就是我得到父母的方式。不需要时应为 null。
后来,我在同一个函数中得到了这个检查:
if (parent && parent != null && !parent.hasClass('.main-group'));
{
console.log(parent == null);
var siblingCount = parent.next().children().length;
if (siblingCount === 0)
{
parent.removeClass('group');
parent.addClass('normal-item');
}
}
所以,我检查是否设置了父级(以防万一),父级不为空并且父级没有main-group 类。这应该可行,至少我认为,但我得到了错误:
TypeError: parent is null
在这一行:
var siblingCount = parent.next().children().length;
所以,这就是我添加控制台日志以查看 parent 是否为空的原因。你猜怎么着? console.log 说的是真的。这意味着 parent 等于 null,但它仍然在 if 语句中。我使用 && 所以它不应该出现在 if 语句中,因为已经有一个操作是错误的。
我让其他人看了,他们也想不通。
【问题讨论】:
-
去掉
if语句末尾的分号 -
除了最后的分号外,不需要
!=null检查,因为您最初检查父级是否为真if(parent)真值不能为空。 -
是的,我知道,但它不起作用,所以我尝试了一堆东西,我什至检查了 null 作为字符串,因为我不知道了。
标签: javascript