Javascript 此函数是否执行:jQuery(“.class”).function();如果在此页面上找不到该类?
只是一个简单的问题 我想知道在下面的代码中,如果页面上没有.banner类,是否会运行unslider() jQuery(“.banner”).unslider() 我不希望它在没有.banner类的页面上运行 我需要做类似的事情吗 如果(jQuery(“.banner”)>0){ jQuery(“.banner”).unslider(); }Javascript 此函数是否执行:jQuery(“.class”).function();如果在此页面上找不到该类?,javascript,jquery,Javascript,Jquery,只是一个简单的问题 我想知道在下面的代码中,如果页面上没有.banner类,是否会运行unslider() jQuery(“.banner”).unslider() 我不希望它在没有.banner类的页面上运行 我需要做类似的事情吗 如果(jQuery(“.banner”)>0){ jQuery(“.banner”).unslider(); } 不,如果找不到元素,它将不会执行 plugin方法将被调用,但由于没有与选择器匹配的元素,因此不应执行任何操作-但这同样取决于插件的实现方式如果类不可用
不,如果找不到元素,它将不会执行
plugin方法将被调用,但由于没有与选择器匹配的元素,因此不应执行任何操作-但这同样取决于插件的实现方式如果
类
不可用,通常不会执行后续操作,但进行初步检查会更安全
你必须喜欢这个
if(jQuery(".banner").length > 0){ jQuery(".banner").unslider(); }
或
您需要使用
length
属性来检查元素是否存在
if (jQuery(".banner").length > 0)
{
jQuery(".banner").unslider();
}
您甚至不需要检查它是否大于零
if (jQuery(".banner").length)
{
jQuery(".banner").unslider();
}
是的,它运行并执行以下()命令: 因此,它对您的收藏执行
.each()
但是,如果该集合为空,则传递给.each()
的函数将不会运行,因此“不多”最能描述如果运行$('.banner')。unslider()代码>
顺便说一句,除非您确定调用将很重,否则尝试通过执行.length
检查来“优化”这个是没有意义的。最后一个条件没有意义,因为在表达式中所有对象都被认为是真实的。@Jack我认为它将返回未定义的。谢谢你的新信息。但我只想返回在这种情况下它将返回的东西。?谢谢它返回一个空集,或者如果愿意,返回一个空数组;但即使是空数组也被认为是真实的。
if (jQuery(".banner").length)
{
jQuery(".banner").unslider();
}
$.fn.unslider = function(o) {
var len = this.length;
// Enable multiple-slider support
return this.each(function(index) {
// Cache a copy of $(this), so it
var me = $(this);
var instance = (new Unslider).init(me, o);
// Invoke an Unslider instance
me.data('unslider' + (len > 1 ? '-' + (index + 1) : ''), instance);
});
};