jQuery小技巧

1.is() 方法

  var elem = $('#elem');

        elem.is('div') // 检测是否为div 返回true or false
        elem.is('.some'); //检测是否有某个class

2.$.() 方法是有两个参数的

var div = $('<div>',{
            'class':'big',
            'width':20,
            'height':40,
            'css':{
                'border':'1px solid #ccc'
            }
        });

        $('body').append(div);

        $('div','body').html('123');//body指的是上下文,也就是在body里面的div

3. 判断链接是否为外部链接

  $('a').each(function(){
            if(this.hostname != location.hostname){
                console.log('链接为外部');
            }
        })

4. 禁止右键菜单栏显示

  $(document).on("contextmenu",function(e){
                    e.preventDefault();
                });

5.分解url

  var url = 'http://www.baidu.com/index.php?xxx=123#content';

        var a = $('<a>',{href:url});
        console.log('Host name: '+ a.prop('hostname'));
        console.log('Path: '+ a.prop('pathname'));
        console.log('Query: '+ a.prop('search'));
        console.log('Protocol: '+ a.prop('protocol'));
        console.log('Hash: '+ a.prop('hash'));

6.阻止默认事件

<a href="http://www.baidu.com">click me</a>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
        $('a').click(false);
    </script>

7.创建自定义事件

<a href="javascript:;">jump</a>

    <button>trigger jump</button>
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
        $('a').on('jump',function(){
            console.log('jump');
        });

        $('button').click(function(){
            $('a').trigger('jump');
        })


    </script>

8.获取下载文件大小

<a href="xxx.html">download</a>

    
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <script>
        $('a').click(function(){
            var link = this;
            $.ajax({
                type : 'HEAD',
                url : link.href,
                complete : function(xhr){
                    $(link).append(' + humanize(xhr.getResponseHeader('Content-Length'))');
                }
            })

        })

        function humanize(size){
            var units = ['bytes','KB','MB','GB','TB','PB'];

            var ord = Math.floor( Math.log(size) / Math.log(1024) );
            ord = Math.min( Math.max(0,ord), units.length-1);

            var s = Math.round((size / Math.pow(1024,ord))*100)/100;
            return s + ' ' + units[ord];
        }


    </script>

9.获取滚动条距离顶部的距离

  $(document).scrollTop();

$('html').scrollTop() 在chrome失效
$('body').scrollTop() 在firefox失效
所以这里还是使用document对象去获取高度比较好
原问题

10.监听hashchange

        $(window).on('hashchange',function(){
            var hashVlaue = window.location.hash.slice(1);
            console.log(hashVlaue); 
        })

        $(function(){//页面刷新,手动触发
            var hashval = location.hash.slice(1);
            if(hashval){
                $(window).trigger('hashchange');
            }
        })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.高逼格---转义反斜杠一般用在转义中,比如在字符串里我们想表示空字符就使用'\b',换行'\n'。同样,在提供...
    涛涛灬灬阅读 451评论 0 0
  • [TOC]收集的 jQuery 小技巧/代码片段,可以帮你快速开发. 1. 禁止右键点击 2. 隐藏搜索文本框文字...
    REIGE阅读 213评论 0 1
  • 英文原文:jQuery Tips Everyone Should Know原文地址:http://honoka.c...
    IT程序狮阅读 487评论 3 4
  • 互调必须代码 1、js调用oc方法 2、oc调用js方法
    Lovell_阅读 173评论 0 0
  • 《 同读一本书, 2016-04-06-065 》 影响力 正文:{专家解读:在我们为企业提供培训的时候,经常有学...
    贠霞阅读 186评论 2 0