jQuery中大家不太了解的几个方法

 更新时间:2015年03月04日 10:54:50   投稿:hebedich  
在今天这篇文章中,我们将介绍几个jQuery的相关方法,无论你是入门级极客或者骨灰级极客,可能都会忽略这些方法的使用。希望大家会觉得有帮助!

jQuery近些年来仍旧是web开发中最受欢迎的类库,虽然大家褒贬不一,但是仍旧不失为一款最流行的Javascript,

在事件中return false

可能大家在编写事件相关代码的时候,有时候会使用return false语句,代码如下:

复制代码 代码如下:

$("a").click(function() {
   $(".gbtags").toggle();
   return false;
}

以上代码中,我们点击a元素,如果不return false,会触发对应a元素的链接,导致页面的地址变化。

而jQuery有标准的方法来帮助你实现类似上面的功能,代码如下:

复制代码 代码如下:

if ( ret !== undefined ) {
   if ( (event.result = ret) === false ) {
      event.preventDefault();
      event.stopPropagation();
   }
}

那么这两个实现方式有什么不同呢? 我们可以看看jQuery的源代码,如下:

复制代码 代码如下:

if ( ret !== undefined ) {
   if ( (event.result = ret) === false ) {
      event.preventDefault();
      event.stopPropagation();
   }
}

大家看明白了吗?最简单理解,如下:

return false;
等于

event.preventDefault();
event.stopPropagation();
在事件处理中,如果你直接返回false,那么将会同时阻止元素缺省行为并且终止元素事件的Bubbling,即事件同时阻止当前元素父层元素,即:event.stopPropagation(); 所实现效果。

$.type来实现类型判断

也许大家都已经习惯了使用javascript的本地方法:typeof 来判断类型,但是在jQuery中提供了一个更好的方法帮助你判断类型,那就是$.type。

那么究竟有什么区别呢? 我们先看看这个gbdebug:

http://www.gbtags.com/gb/debug/3361dbff-41c0-465d-81e3-1ef6cbb275e1.htm
运行以上代码,能看到如下输出结果:

复制代码 代码如下:

// 返回object
result(typeof null);
// 返回object
result(typeof [0, 1, 2]);
// 返回object
result(typeof new Number(3));
// 返回null
result($.type(null));
// 返回array
result($.type([0, 1, 2]));
// 返回number
result($.type(new Number(3)));

大家看出来什么区别了吗? 使用$.type能够返回更准确的对象类型,而typeof则返回object,所以如果你使用jQuery来编码的时候,使用$.type 将更加方便。

使用attr()来实现removeAttr()的功能

可能大家习惯了使用attr()来添加元素属性,而使用removeAttr() 来删除元素属性。

但是其实使用attr()也能执行删除的效果,为什么呢?请看看如下jQuery源代码:

复制代码 代码如下:

attr: function( elem, name, value ) {
    ...
    if ( value !== undefined ) {
        if ( value === null ) {
            jQuery.removeAttr( elem, name );
    ...
}

从上面jQuery的源代码中可以看出来,如果你设置value为null的话,其实它就可以实现removeAttr的方法功能。

http://www.gbtags.com/gb/debug/269c89e1-b22f-40f9-8d26-8d995e999d29.htm
因此,我们可以如下方式来运行判断是否删除属性:

复制代码 代码如下:

$('a').attr('title', condition ? value : null);

否则你需要使用如下:

复制代码 代码如下:

condition ? $('a').attr('title', value) : $('a').removeAttr('title');

是不是稍微简单一些?

$.makeArray来创建数组

有些时候我们需要将类似数组的数据结构转化成为一个真实的数组,然后调用相关数组方法,例如reverse,代码如下:

复制代码 代码如下:

// 返回 NodeList
var elems = document.getElementsByTagName( "li" );
// 转化为Array
var arr = jQuery.makeArray( elems );
// 调用数组方法反向排序
arr.reverse();
$( arr ).appendTo( document.body );

相关gbdebug:

http://www.gbtags.com/gb/debug/75d28491-aa13-4868-aa95-10b079337b82.htm
是不是非常简单?如果不使用$.makeArray,那么你需要自己处理Javascript来实现类似的功能,会非常麻烦

总结

以上就是几个大家可能在jQuery开发中容易忽略的几个实用方法,或者你也有自己的一些不错的方法,请大家不吝分享!

相关文章

  • 通过上下左右键和回车键切换光标实现代码

    通过上下左右键和回车键切换光标实现代码

    客户有这样一个需求在列表中的文本框里输入数据时,要能够通过上下左右键来切换光标,按回车键就把光标移到下一个文本框,接下来将为你介绍下如何实现,感兴趣的朋友可以参考下
    2013-03-03
  • JQuery扩展对象方法操作示例

    JQuery扩展对象方法操作示例

    这篇文章主要介绍了JQuery扩展对象方法操作,结合实例形式简单分析了jQuery使用$.fn.extend方法扩展对象方法的相关操作技巧,需要的朋友可以参考下
    2018-08-08
  • 关于锚点跳转及jQuery下相关操作与插件

    关于锚点跳转及jQuery下相关操作与插件

    锚点嘛,业余点的解释就是可以让页面定位到某个位置的点。在高度较高的页面中经常见到
    2012-10-10
  • jQuery基础语法实例入门

    jQuery基础语法实例入门

    这篇文章主要介绍了jQuery基础语法,以实例形式分析了jQuery的对象以及针对对象进行的操作用法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • 基于jquery库的tab新形式使用

    基于jquery库的tab新形式使用

    本文将介绍基于jquery库的tab新形式使用,需要的朋友可以参考下
    2012-11-11
  • jQuery实现合并表格单元格中相同行操作示例

    jQuery实现合并表格单元格中相同行操作示例

    这篇文章主要介绍了jQuery实现合并表格单元格中相同行操作,结合实例形式分析了jQuery针对table表格实现单元格合并的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • jQuery 控制文本框自动缩小字体填充

    jQuery 控制文本框自动缩小字体填充

    这篇文章主要介绍了jQuery 控制文本框自动缩小字体填充的相关资料,需要的朋友可以参考下
    2017-06-06
  • jquery+json实现数据列表分页示例代码

    jquery+json实现数据列表分页示例代码

    该实例中,新闻数据列表未使用表格显示,下面有个不错的示例完美实现实现数据列表分页,感兴趣的朋友不要错过
    2013-11-11
  • 为jQuery添加Webkit的触摸的方法分享

    为jQuery添加Webkit的触摸的方法分享

    这段代码是我在做13年一份兼职的时候无聊加上去的,为jQuery添加触摸事件的支持。因为做得有点无聊,所以就帮客户添加了用响应式网页+JS touch兼容了移动设备,主要是Webkit的移动设备
    2014-02-02
  • jQuery给表格添加分页效果

    jQuery给表格添加分页效果

    这篇文章主要为大家详细介绍了利用jQuery给表格添加分页效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论