在Mootools中,我只需要运行if ($('target')){…}。if ($('#target')){…}在jQuery的工作方式相同?
当前回答
我想这里回答的大多数人都不太理解这个问题,否则我可能会弄错。
问题是“如何检查jQuery中是否存在选择器”。
大多数人认为这是“如何使用jQuery检查DOM中是否存在元素”。几乎可以互换。
jQuery允许你创建自定义选择器,但是当你在初始化e之前尝试使用它时会发生什么;
$(':YEAH');
"Syntax error, unrecognized expression: YEAH"
在遇到这种情况后,我意识到这只是一个简单的检查问题
if ($.expr[':']['YEAH']) {
// Query for your :YEAH selector with ease of mind.
}
欢呼。
其他回答
不,无论选择器是否匹配,jquery总是返回一个jquery对象。 你需要使用。length
if ( $('#someDiv').length ){
}
另外:
if( jQuery('#elem').get(0) ) {}
如果你使用:
jQuery.fn.exists = function(){return ($(this).length > 0);}
if ($(selector).exists()) { }
你可能会暗示链条是可能的,但实际上不是。
这样会更好
jQuery.exists = function(selector) {return ($(selector).length > 0);}
if ($.exists(selector)) { }
jQuery.fn.exists = function(selector, callback) {
var $this = $(this);
$this.each(function() {
callback.call(this, ($(this).find(selector).length > 0));
});
};
我更喜欢
if (jQuery("#anyElement").is("*")){...}
它基本上检查这个元素是否是一种“*”(任何元素)。 更简洁的语法,is在if中更有意义
推荐文章
- 在数组中获取所有选中的复选框
- 如何为Firebase构建云函数,以便从多个文件部署多个函数?
- 如何发送推送通知到web浏览器?
- AngularJS:工厂和服务?
- js:将一个组件包装成另一个组件
- 父ng-repeat从子ng-repeat的访问索引
- JSHint和jQuery: '$'没有定义
- 模仿JavaScript中的集合?
- 用JavaScript验证电话号码
- 如何在HTML5中改变视频的播放速度?
- 谷歌地图API v3:我可以setZoom后fitBounds?
- 用jQuery检查Internet连接是否存在?
- 如何使用滑动(或显示)函数在一个表行?
- ES6/2015中的null安全属性访问(和条件赋值)
- 与push()相反;