JQuery学习笔记

1、失去焦点事件onblur
2、选择器
3、属性操作
4、事件
5、加载完成
6、合成事件
7、调用js的成员
8、text(),html()
9、动态添加删除元素
10、遍历集合以及change事件
11、设置样式
12、函数
13、权限选择

1、失去焦点事件onblur

//为文本框注册失去焦点事件,失去焦点时,进行密码验证
            document.getElementById('txtPwd').onblur = function () {。。。。}

2、选择器

//根据id查找
$('#btnShow');
//根据元素查找
$('input');
//空格表示查找所有子级
$('#d1 div');
//过滤选择器
$('div:first');

3、属性操作

        //获取属性的值:只写第一个参数,属性的名字
        //alert($('#btnShow').attr('value'));
        
        //设置属性的值:写两个参数,第一个表示属性的名字,第二个表示值
        //$('#btnShow').attr('value', 'Hello World');
        
        //prop表示html的原有属性,attr而表示扩展属性
        //如:img的src操作使用prop,而href操作使用attr
        //一般使用attr因为各种情况都适用
        //$('img').attr('href', 'abc');

        //移除属性
        //$('#btnShow').removeAttr('value');

4、事件

//为按钮绑定点击事件
        //$('#btnShow').click(function() {
        //    alert(this.value);//this是dom对象,不能调用jquery的成员
        //});
        
        //dom的事件注册:一个事件只能注册一个处理函数,不支持多播
        //document.getElementById('btnShow').onclick = function() {
        //    alert(1);
        //};
        //document.getElementById('btnShow').onclick += function() {
        //    alert(2);
        //};
        
        //jquery事件注册:支持多播,一个事件可以指定多个处理函数
        $('#btnShow').click(function() {
            alert(1);
        });
        $('#btnShow').click(function() {
            alert(2);
        });

5、加载完成

//为window的onload事件注册处理函数,表示页面加载完成后触发执行
        //标签加载完成,并且标签指定的资源也加载完成
        //onload = function() {
        //};

        //表示加载完成后执行此代码:dom就绪,指标签加载完成,这时,标签指定的资源可能还没有加载完成
        //$(document).ready(fun);简写如下:
        $(function() {
            $('#btnShow').click(function() {
                alert(1);
            });
        });

6、合成事件

//合成指向、移开事件
            //$('#btnShow').hover(function() {//指向
            //    this.style.color = 'red';
            //}, function() {//移开
            //    this.style.color = 'black';
            //});
            
            //合成点击事件,指定在n个函数间切换,点击次数为m
            //$('#btnShow').toggle(function() {//第m%n==1次点击时执行此函数
            //    alert(1);
            //}, function() {//第m%n==2次点击执行此函数
            //    alert(2);
            //}, function() {//第m%n==0次点击执行此函数
            //    alert(3);
            //});
            
            //合成事件:只将绑定的事件执行一次
            //$('#btnShow').one('click', function() {
            //    alert(1);
            //});

7、调用js的成员

//找到按钮,并绑定点击事件
            $('#btnShow').click(function() {
                //找到文本框并获取值
                var num = parseInt($('#txtNum').val());//直接调用js的成员进行操作
                num++;
                //将值显示到文本框
                $('#txtNum').val(num);//传递参数时,表示将值赋给value
            });
        });

8、text()、html()

$(function() {
            $('#btnShow').click(function () {
                //对于标签对,使用text()、html()进行设置或获取
                $('#txt1').text('这是个div');
            });
        });

9、动态添加删除元素

$('#btnAppend').click(function () {
                //动态创建jquery对象
                var zhh = $('<b>Zhh</b>');
                //追加
                $('#divContainer').append(zhh);
            });

            $('#btnAppendTo').click(function () {
                //追加到
                $('<b>拍电影</b>').appendTo($('#divContainer'));
            });

            $('#btnEmpty').click(function () {
                //清空所有子元素
                $('#divContainer').empty();
            });

            $('#btnRemove').click(function() {
                //$('#divContainer').remove();
                $('<span style="color:red">sadkfjlsad</span>').insertBefore('#divContainer');
            });
        });

10、遍历集合以及change事件

//$.each(obj,fun(i,n))
        //如果obj是数组,则i是索引,n是元素
        //如果obj是对象或键值对,i是键,n是值

        //定义省市数据,键值对集合
        var datas = {
            "北京": ["朝阳", "海淀", "昌平", "丰台"],
            "山东": ["青岛", "济南", "烟台"],
            "山西": ["大同", "太原", "运城", "长治"],
            "河南": ["洛阳", "开封", "郑州", "驻马店"],
            "河北": ["石家庄", "张家口", "保定"]
        };
        $(function() {
            //创建省的select
            var select = $('<select id="selectProvince"></select>');
            //最后写change事件:为省的select绑定change事件
            select.change(function () {
                //找到市信息
                var citys = datas[$(this).val()];
                //删除市的原有option
                $('#selectCity').empty();
                //添加option
                $.each(citys, function(index,item) {
                    $('<option>' + item + '</option>').appendTo('#selectCity');
                });
            });
            //追加到body中
            select.appendTo('body');
            //遍历集合
            $.each(datas, function (key, value) {
                //根据数据创建option并追加到select上
                $('<option value="' + key + '">' + key + '</option>').appendTo(select);
                
            });
            
            //创建市的select
            var selectCity = $('<select id="selectCity"></select>').appendTo('body');
            //获取选中的省信息
            var pro = $('#selectProvince').val();
            //将省名称作为键到集合中获取值
            var citys = datas[pro];
            //遍历市的数组
            $.each(citys, function(index, item) {
                $('<option>' + item + '</option>').appendTo(selectCity);
            });
        });

11、设置样式

//设置样式
            //$('#btnShow').css('background-color', 'red');
            //设置多个样式
            $('#btnShow').css({
                'color': 'white',
                'background-color': 'blue',
                'font-size': '20px'
            });

12、函数

//call与apply的意义:在不改变对象源代码的情况下,可以让函数内部的this表示当前对象

        var id = 10;//为window对象定义了属性id
        function showId() {
            alert(this.id);
        }

        function Person(fn) {
            this.id = 20;//为类定义了属性id
            //this.sayId2 = fn;
        }

        //var p1 = new Person();
        //p1.sayId = showId;//将方法showId赋值给变量sayId
        //p1.sayId();//调用方法,使用p1调用的方法,所以函数中的this就是p1

        //var p2 = new Person(showId);
        //p2.sayId2();
        
        //在不改变原有成员的情况下,让person对象调用showId方法
        //showId();
        showId.call(new Person());//call表示由哪个对象来调用这个方法,方法中的this就是这个对象

13、权限选择

$(function () {
            //为“全部右移”按钮绑定事件
            $('#btnRightAll').click(function () {
                //获取所有子元素,追加到右边的select中
                $('#selectLeft').children().appendTo('#selectRight');
            });
            
            //为“选中右移”按钮绑定事件
            $('#btnRight').click(function () {
                //获取到所有被选中的option
                $('#selectLeft :selected').appendTo('#selectRight');
            });
            
            //为“全部左移”按钮绑定事件
            $('#btnLeftAll').click(function() {
                //获取右侧所有的option
                $('#selectLeft').append($('#selectRight option'));
            });
            
            //为“选中左移”按钮绑定事件
            $('#btnLeft').click(function() {
                //获取右侧选中的项,加到左边
                $('#selectLeft').append($('#selectRight :selected'));
            });
        });
原文地址:https://www.cnblogs.com/mango1997/p/13995027.html