gpt4 book ai didi

javascript - 为什么这个 IF 语句仍然会触发?

转载 作者:行者123 更新时间:2023-12-01 02:21:43 25 4
gpt4 key购买 nike

好的,我是 Stackoverflow 的长期用户,第一次提问。请记住,我主要是一个 CSS/HTML 人员,只了解 jQuery 基础知识,所以要温柔!

为什么即使目标元素在 HTML 中不可用,为什么这个 if 语句仍然会触发?请参阅this example (查看控制台日志),当页面上没有 .cta > .btn 时也会发生这种情况。要查找的部分是:

if ( $('.page-template') ) {

}

这是working version以供引用。无论如何,加载速度可能不会太慢​​,但我想限制后台运行的内容,尤其是窗口调整大小,因为我听说它是​​一个资源消耗者(使用 Paul Irish 脚本)。

如果它是类似 PHP 的东西,它根本不应该触发,对吧?

更新

所以我偶然发现了 is()它的作用与 if 语句相同,但仅在类存在时返回一个对象。因此以下为例:

$(function() {
$('.nav-main .active.dropdown').is(
function(){
$(this).children('.dropdown-menu').removeClass('visuallyhidden')
.parents('#menu-primary-navigation').addClass('dropdown-active');
console.log('is fired');
}
);
});

仅在 .nav-main .active.dropdown 可用时触发。所以我想(未经测试)以下内容也可以工作:

if ( $('something').is() ) { ... }

更新#02

您还可以使用感叹号 ! 指定“不是”,如下所示:

if ( !$('something') ) { ... }

最佳答案

试试这个:

if ( $('.page-template').length ) {

}

我相信仅仅执行 $('.page-template') 仍然会返回一个对象,该对象的计算结果为 true。如果您想检查该元素是否存在,则必须使用 length

关于javascript - 为什么这个 IF 语句仍然会触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16124805/

25 4 0
文章推荐: python - 单击后禁用按钮 - Odoo v8
文章推荐: javascript - 将 observable 转换为 observable