【问题标题】:check whether an element exists using jQuery使用 jQuery 检查元素是否存在
【发布时间】:2012-12-05 23:13:22
【问题描述】:
我想让 jquery 仅在特定的 #id 或 .class 可用时工作。我想知道哪个是正确的???请帮忙...谢谢
if($().flexslider) {
//do something
}
or
if ( $( '#flexslider' ).length && jQuery().flexslider ) {
//do something
}
【问题讨论】:
标签:
jquery
conditional-operator
【解决方案1】:
你safely使用length来判断DOM元素exists。
if ( $('#flexslider').length) //For item with id flexslider
或
if ( $('.classname').length) //For item with class classname
检查函数是否存在
if ($.isFunction(window.yourFunName)) //with jQuery
if(typeof(callback) == "function") //with javascript
【解决方案2】:
如果要确保元素存在,并且加载了 flexslider 插件,请执行后者:
if ( $( '#flexslider' ).length && jQuery().flexslider ) {
//do something
}
如果您只想检查元素是否存在,请执行以下操作:
if($('#flexslider').length) {
//do something
}
【解决方案3】:
大多数时候旁观者都认为正确。通常有多种方法可以解决问题。如果要检查绑定函数的存在和 DOM 节点的存在,则需要在 ready 函数之后捕获两者,并将 typeof 变量与函数进行比较以查看它是否为真。
$(function(){
if($('#flexslider').length && typeof flexslider == 'function'){
}
});