2017-04-07 jQuery 学习笔记

jQuery 函数整理

  • show(参数)
//显示,添加参数表示动画时间,动画同时控制宽高
$("div").show(1000).html('哈哈哈')
  • hide(参数)
//隐藏,添加参数表示动画时间,动画同时控制宽高
$('div').hide(1000)
  • html('参数')
    没有参数为获取值
//html 添加文本,括号内是字符串,无法输入标签
$("div").show(1000).html('哈哈哈')
  • text('参数') 与 html('类似')
    当该方法用于返回一个值时,它会返回所有匹配元素的组合的文本内容(会删除 HTML 标记)。
    没有参数为获取值,有参数为设置值,此时会覆盖原有内容

  • ready()

$(document).ready(function(){})
//功能类似 
window.onload = function(){}
//前者可以多次执行,function(){}是作为参数传递进去,所以并不会覆盖;后者只能执行一次,function(){} 作为值,是赋值操作
//前者加载不包括外部资源图片,只是 DOM 树加载完成之后就执行,比后者执行快
  • noConflict()
    解除绑定 $ 符号
$.noConflict();
//解除之后要使用 jQuery 对象就使用jQuery前缀
jquery.('div').hide(1000)
  • addClass()
    添加类名
 $('div').addClass('current');
  • removeClass()
    删除类名
 $('div').removeClass('current');
  • taggleClass()
    切换类名,如果存在类名那么删除,如果不存在类名那么添加
$('div').taggleClass('current');
  • css()
    所有关于样式 .style 的操作都在此方法内进行
//键值对的形式
 $div.css({
                            'width': '500px',
                            'height': '500px',
                            'background': 'red'
                        })
$div.css('width','500px');
  • val()
    主要用于 input标签自带属性如:src\href\value 等属性控制,带参数代表设置,不带参数代表获取
$('input').val('1233');
$('input').val();
  • 尺寸函数
var w = $("#small").width()
                var h = $("#small").height()
                var iw = $("#small").innerWidth()
                var ih = $("#small").innerHeight()
                var ow = $("#small").outerWidth()
                var oh = $("#small").outerHeight()
                var owm = $("#small").outerWidth(true)
                var ohm = $("#small").outerHeight(true)
  • attr()
    获取或设置属性值
//带参数为设置
$(selector).attr(attribute,value)
$('a').attr('target','_self')
//获取规定参数的属性的值
$(selector).attr(attribute)
//使用函数来设置属性和值
$(selector).attr(attribute,function(index,oldvalue))
//键值对的方式设置多个属性和值
$(selector).attr({attribute:value, attribute:value ...})
$('a').attr({
         'href': 'http://www.baidu.com',
         'target': '_blank'
 })
  • parent()
    获得父元素
$("#filter").parent().css("background-color", "blue")
  • parents()
    获得父元素及所有祖先元素
$("#filter").parents().css("background-color", "blue")
  • child()
    获得子元素标签
$('div').child()
  • children()
    获得所有子元素标签
$('div').children()
  • siblings()
    获得兄弟元素标签
$(this).css('background', 'red').siblings().css('background', 'green');
  • next()
    next() 获得匹配元素集合中每个元素紧邻的同胞元素。如果提供选择器,则取回匹配该选择器的下一个同胞元素。
//.next(selector)
$("#ul1").next("div").css("background-color", "red")
  • eq()
    eq() 选择器选取带有指定 index 值的元素。返回的是一个 jQuery 对象可以直接使用 jQuery 方法
$(":eq(index)")
$(".class").eq(0).css("background-color", "green")
  • mouseenter()
    鼠标进入事件,从子元素进入不会再次触发事件

  • mouseover()
    鼠标滑过事件,从子元素进入会再次触发事件

  • mouseleave()
    鼠标离开事件,进入子元素不会再次触发事件

  • mouseout()
    鼠标划出事件,进入子元素会再次触发事件

  • hover(fn,fn)
    监控鼠标移入移出,功能等于 mouseenter() 和 mouserleave,带两个参数前一个表示移入,后一个表示移出;如果只有一个参数则表示移入移出做相同方法

 $('li').hover(function () {
                        $(this).children('.filmContent').addClass('current').parent().siblings().children('.filmContent').removeClass('current');
                    })
  • index()
    返回指定元素相对于其他指定元素的 index 位置。返回的是相对其父元素的位置
 $('li').hover(function () {
                        console.log($(this).index());
                    })
  • event.stopPropagation()
    阻止冒泡,因为是事件对象,所以要穿如 event 做参数

  • toggle()
    切换动画状态,如果可见那么切换成不可见,如果不可见那么切换成可见

$(selector).toggle(speed,callback,switch);
 $('.ad').toggle(1000);
  • slideToggle();
    通过使用滑动效果(高度变化)来切换元素的可见状态。
    如果被选元素是可见的,则隐藏这些元素,如果被选元素是隐藏的,则显示这些元素。
$(selector).slideToggle(speed,callback);
$(this).children('.secondMenue').stop().slideToggle(200);
  • slideUp()
    隐藏动画,向上滑动卷起
$(this).siblings().children('.secondMenue').stop().slideUp(200);
  • slideDown(参数1,fn)
    展示动画,向下滑动;参数1是执行动画时间,fn 是回调
$(this).siblings().children('.secondMenue').stop().slideDown(200);
  • stop();
    结束动画,两个参数,前面是是否结束全部动画,后面是否直接跳到动画结尾(没有动画),是布尔类型
$(selector).stop(stopAll,goToEnd)
  • addBack();
    当前jQuery对象可能是通过调用其它jQuery对象的特定方法创建的,使用该函数将返回一个新的jQuery对象,该对象包含了当前jQuery对象和之前创建它的jQuery对象的所有匹配元素。
$('.box2').parent().addBack().css('background', 'cyan');
  • fadeIn(参数1,参数2); fadeOut()
    淡入淡出动画,参数1是动画时间单位毫秒,参数2是透明度范围0~
$('.ad').delay(1000).fadeIn(1000).delay(5000).fadeOut(1000);
  • delay();
    延迟动画,参数是时间单位毫秒
$('.ad').delay(1000).fadeIn(1000).delay(5000).fadeOut(1000);
  • fadeToggle();
    切换,原来是淡入切换成淡出,原来是淡出切换成淡入
  $('.ad').fadeToggle(1000);
  • animate(prop,speed,easing,callback);
    自定义动画,prop 是属性, speed 是速度(可以填时间),easing 是动画方式(渐快、渐慢、先慢后快等等,一些特殊的动画方式需要引入插件使用);动画是队列形式执行,先进先出
 $('div').animate({
                   'width': '1000px'
               }, 1000, function () {
                   console.log('动画结束');
               });
  • each();
    each() 方法规定为每个匹配元素规定运行的函数
$(selector).each(function(index,element));
  $('li').each(function () {

//               this  == DOM对象
               $(this).slideUp(2000);

//               console.log(index + value);
           })
  • jQuery 动态创建标签节点
var $newTag = $('<li>新增的节点</li>');
  • a.append(b);
    把 b 添加到 a里, a 是 b 的父标签节点
  • b.appendTo(a);
    这对方法是将节点添加到父节点中的最后位置
$('.red').append($newTag);
$newTag.appendTo($('.red'))
  • a.prepend(b);
  • b.prependTo(a);
    这对标签是将 b 添加到 a 标签的第一个位置
$newTag.prependTo($('.red'));
$('.red').prepend($newTag);
  • a.before(b);
  • b.innerBefore(a);
    兄弟关系添加,将 b 添加到 a 前面
$('.red').before($newTag);
$newTag.innerBefore($('.red'));
  • a.after(b);
  • b.innerAfter(a);
    兄弟关系添加节点,将 b 添加到 a 节点后面
$('.red').after($newTag);
$newTag.innerAfter($('.red'));
  • remove();
    删除节点,参数是指向节点的 className id tag 等等
$('.red>li:first').remove();
  • empty();
    清空节点中的内容,也可以用 html('');
$('.red>li:first').empty();
$('.red>li:first').html('');

注意要清空自带属性要使用 val('')

  • trim()
    去除空格、tab
$.trim(content).length <= 0
  • focus();
    获得焦点
$('.content').focus();
  • blur();
    失去焦点
$('.content').blur();
  • clone(参数);
    复制节点,参数是布尔类型,默认是 false 浅赋值,仅仅赋值这个节点,不赋值事件;clone(true);时为深赋值,会赋值这个事件
var $cloneTag = $pTag.clone(true);
  • a.replaceWith(b)
    用 b 节点来替换 a 节点
var $pTag = $('p');
var $newTag = $('<h1>0000</h1>');
$pTag.replaceWith($newTag)
  • 事件对象的一些属性方法
  • event.target
    获得调用此方法的具体对象
function test(event){
        console.log(event.target);
}
  • event.type
    获得调用此方法的事件行为(onclick\mouseover)
function test(event){
        console.log(event.type)
}
  • event.data
    获得调用此方法同时传入的参数
        function 事件data() {
            $('ul').click({'name': 'sz'}, exec);
            function exec(event) {
                console.log(event.data);
            }
        }
  • event.result
    获得项链函数的返回值
var num = 0;
function test(){
        $('p').click(function(event){
                return num++;
        })
        $('p').click(function(event){
                alert(event.result);
        })
}
  • on()
  • 事件绑定
//绑定单个事件
$('p').on('click',function(){
        console.log('xxxx');
})

//绑定多个事件,同一个回调函数,中间用空格隔开
$('p').on('click mouseenter',function(event){
        console.log('xxx' + event.type)
})

//绑定多个事件,多个回调函数,用键值对的方式
$('p').on({
        'click':cE,
        'mouseenter':function(){
                console.log('鼠标移入');
        }
})
function cE(){
        console.log('单击事件')
}

  • 事件委托
    on(type,selector,data,fn)
//body被点击,小king执行 function
$('body').on('click','.king', function () {
             console.log('我是小king, 处理事件');
         })
  • off();
    解除事件绑定
$('p').off('click', cE);
  • one();
    一次性事件,只执行一次
$('p').one({
        'click':function(){
                console.log('xxxx');
        }
})

//内部实现原理就是结尾解除绑定
$('p').click(function(){
        console.log('xxxx');
})
  • 阻止事件默认行为
    一些事件会有默认行为,比如a 标签点击会跳转、form中 Input 标签会提交
    event.preventDefault
$(':submit').click(function (event) {
               console.log('xxxx');
               event.preventDefault();
           })

  • trigger();
    手动触发事件,会触发默认事件,会触发冒泡事件(a标签存疑,老师示例时候出现问题)
$(':submit').trigger('click');
  • triggerHandle();
    手动触发事件,不会触发默认事件,不会触发冒泡事件
$('.box3').triggerHandler('click');
  • 命名空间
       $('.box').on('click.xx', function () {
            console.log('click.xx');
      })
       $('.box').on('mouseenter.xx', function () {
          console.log('mouseenter.xx');
      })

      $('.box').on('click.lisi', function () {
          console.log('click.lisi');
      })


         function haha() {
             console.log('1');
         }

         $('.box').click(haha)
         $('.box').click(function () {
             console.log('2');
         })



         $('.box').on('click.one', function () {
             console.log('1');
         })
         $('.box').on('click.two', function () {
             console.log('2');
         })


         $('.box').off('.one');



 $('.box').trigger('click.lisi');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容

  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,745评论 2 17
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,334评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,169评论 0 1
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    程序员poetry阅读 16,643评论 18 503
  • 选择器选择器是jQuery的核心。 事件 动画 扩展
    wyude阅读 473评论 0 1