jQuery基础

jQuery基础

一、jQuery简介

是一款JavaScript库
方便地处理HTML、事件、动画等

html:处理HTML文档中的DOM节点,如添加、删除等
事件:通过jQuery对页面上的事件进行处理(绑定或解绑事件)
动画:通过jQuery实现淡入、淡出、滑动等动画

可以兼容多浏览器
80%以上网站使用

1.jQuery下载与使用
①下载地址:
http://jquery.com/

②压缩和非压缩版本
• Download the compressed, production jQuery
下载压缩版本,用于生产
• Download the uncompressed, development
jQuery 下载非压缩版本,用于开发

③使用:放在body的最后,防止影响性能

<script src="jquery-3.1.0.js"></script>

④版本的选择:
• V1.x
• V2.x:不兼容IE6-8
• V3.x:分为精简版和普通版

⑤使用CDN
• Content Delivery Network 内容分发网络
https://code.jquery.com/
使用CDN的好处:性能提高,加快下载速度

在页面中使用cdn:

<script src="//cdn.bootcss.com/jquery/3.1.0/jquery.js"></script>

2.设计哲学
• Write less,do more

<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <!--使用jQ-->
    <script>
        var checkedValue;
        var elements = document.getElementsByTagName('input');
        for(var i=0;i<elements.length;i++){
            if(elements[i].type === 'radio' && elements[i].name === 'test' && elements[i].checked){
                checkedValue = elements[i].value;
                break;
            }
        }
        console.log(checkedValue);

    </script>

    <!--使用js-->
    <script>
        var checkedValue=$('input:radio[name="test"]:checked').val();
        console.log(checkedValue);
    </script>
    <script src="js/jquery-3.2.1.js"></script>
</body>

结构、表现、行为分离:

结构表现和行为分离.jpg

混杂的.jpg

分离的.jpg

二、jQuery的使用

1.$
jQuery的全局变量,$为该全局变量的别名,其他的jQuery的函数、属性等都定义在该全局变量内。

window.jQuery === window.$

2.$.xxx
调用jQuery本身的属性和方法:

$.each(…)
$.noop
$.toArray()
…

3.$(xxx)
调用jQuery本身的选择,返回一个jQuery对象,xxx为一个查询表达式或者DOM元素等

$('#myDiv')
$('.myClass')
…
$(domObject) -> jQuery Object
$(xxx).get(0) -> DOM Object
$(xxx)[0] -> DOM Object

jQuery对象:
1.是原生DOM对象的封装
2.jQuery对象和原生的DOM对象不同(但可以相互转换)
3.jQuery对象包含了很多方法,方便的操作DOM元素

DOM和jQuery对象转换:任何DOM元素只要通过$()包裹住就变成了jQuery对象

4.链式语法chaining

$('#divTest').text('Hello, world!')
$('#divTest').removeClass('blue')
$('#divTest').addClass('bold')
$('#divTest').css('color', 'red')

—>

$('#divTest')
.text('Hello, world!')
.removeClass('blue')
.addClass('bold')
.css('color', 'red')

内部:每次调用都会返回一个jQuery对象,所以就可以直接再调用,而不用重复再声明一次对象。

注意一:有些jQuery方法有破坏性,如find() add children filter等方法
注意二:有写jQuery方法并不返回jQuery对象

<body>
    <div id="divTest" class="blue">
        test
    </div>
    <div id="divTest2">
        <p>123</p>
        <p class="child">123</p>
        <p>123</p>
    </div>

    <script src="js/jquery-3.2.1.js"></script>
    <script>
        setTimeout(function(){
            $('#divTest').text('Hello,world')
            $('#divTest').removeClass('blue')
            $('#divTest').addClass('bold')
            $('#divTest').css('color','red')

            $('#divTest')
            .text('Hello,world')
            .removeClass('blue')
            .addClass('bold')
            .css('color','red')

            $('#divTest2')
            .find('p.child') //有破坏性,把整个jQuery对象的范围缩小了
            .css('color','red')
            //.end()  //可以通过end()方法还原:把元素的匹配恢复到上一次的状态
            .addClass('bold')

            $('#divTest2').get(0) //变成DOM对象之后,就不能用jQuery的链式方法了
            .find('p.child') 
            .css('color','red')
            //.end()  
            .addClass('bold')

        },2000)
    </script>
</body>

5.ready()

$(document).ready(function(){…})

一般在写jQuery的一些操作时,要保证页面的DOM已经加载完毕:
方法一:可以通过window.onload事件;
方法二:ready()方法;

针对有些页面,实际上DOM结构已经加载完毕了,但还在等待加载一些内容,比如一些图片网站,而window onload必须要等页面完全所有DOM的完成,也就是等待这些内容都加载完毕,图片下载完,iframe加载完才能加载window onload后面的处理。而ready方法只会检查DOM结构是否加载完,不会等待图片等其他东西,响应就会快很多。

<body>
    <!--大图片-->
    <img src="http://www.hcx.com/static/3.jpg" alt="" width="800"/>

    <script src="js/jquery-3.2.1.js"></script>

    <script>
        //使用window.onload
        window.onload = function(){
            console.log('onload');
        }
        $(window).load(function(){
            console.log('load');
        });

        //使用ready
        $(document).ready(function(){
            console.log('ready');
        })
    </script>
</body>

注意:两个方法最好不要同时使用,有些情况会导致ready失效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值