jquery - 执行 'if statement' 在控制台中给出奇怪的结果

标签 jquery if-statement global-variables

我正在使用全局变量的存在来执行 if 语句。变量:

 _class = $('a').parent().closest('*[class]')[0].className; 

在这种情况下,没有父级,因此没有类。我想在控制台中接收此信息,因此我做了一个 if 语句:

if ( _class !== undefined ) {

    console.log('has class');

}else{

    console.log('undefined');

} 

在 Chrome 检查器中,我收到 Uncaught TypeError: Cannot read property 'className' of undefined ,并且没有任何与我的 if 语句相关的信息。我的问题:我该怎么做才能消除错误消息并输出我的 if 语句?我用 nulllength 等进行了尝试,似乎没有任何效果。

示例:JsFiddle

最佳答案

尝试处理该错误,

 _class = $('a').parent().closest('*[class]')[0] || "NOPE";

 if (_class === "NOPE") {
     console.log('undefined');
 } else {
     if (_class.className !== undefined) {
         console.log('has class');
     } else {
         console.log('undefined');
     }
 }

DEMO

关于jquery - 执行 'if statement' 在控制台中给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24529681/

相关文章:

jquery - 如何在 iOS 主屏幕应用程序中使用多页 jQuery 移动文档?

javascript - 使用jquery隐藏三个按钮中的两个

jQuery 在 if 语句中使用 'this'

c++ - 为什么 if 语句中声明的变量仍在 else block 的范围内?

python - 是否可以使用 Pool.map() 让多个进程写入同一个字典?

perl - 在 Perl 中, "$a"和 "$b"在 sort() 函数之外有什么特殊用途吗?

javascript - 将表格单元格数据转换为单独的 .js 文件中的内部链接

javascript - 使用来自 ui-bootstrap 的 tabset 指令时,Angularjs Routing 行为异常

excel - 如果单元格包含字符串

asp.net - ASP.NET MVC 网站中的全局值是否可以由使用该网站的任何人访问,或者是否为每个 session 实例化?