Jquery常用的方法汇总


Posted in Javascript onSeptember 01, 2015

//jQuery的优点 : 

        1 轻量级
        2 强大的选择器
        3 出色的DOM操作的封装
        4 可靠的事件处理机制
        5 完善的Ajax
        6 不污染顶级变量
        7 出色的浏览器兼容性
        8 链式操作方式
        9 隐式迭代
        10 行为曾与结构层的分离
        11 丰富的插件支持
        12 完善的文档
        13 开源

<script src="jquery.js" type="text/javascript">这里不许放任何代码</script>
 
    $("#foo")和 jQuery("#foo")是等价的
    $.ajax 和 jQuery.ajax 是等价的  $符号是jQuery的简写形式

  // window.onload : $(function(){ })
  $(function(){ })  就相当于 js 中的window.onload事件一样,是在页面加载完成后,立刻执行的    只有这个和window.onload一样
    不过window.onload只能写一个 但是$(function(){ })可以写多个
        没有简写的时候是 $(document)ready(function(){ })

//链式操作风格 : 

$(".level1>a").click(function(){
      $(this).addClass("current") //给当前元素添加"current"样式
      .next().show(); //下一个元素显示
      .parent().siblings()//父元素的同辈元素
      .children("a") //子元素<a>
      .removeClass("current")//移出"current"样式
      .next().hide();//他们的下一个元素隐藏
    return false;
    })

//jQuery对象转成DOM对象 : 

    1 jQuery对象是一个类似数组,可以通过[index]的方法得到相应的DOM对象

        var $cr = $("#cr");//jQuery对象
        var cr = $[0]; //DOM对象

    2 另一种方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象

        var $cr = $("#cr");//jQuery对象
        var cr = $cr.get(0);//DOM对象

//DOM对象转成jQuery对象 : 

    对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了.
        方式为 : $(DOM对象);

        var cr = document.getElementById("cr");//DOM对象
        var $cr = $(cr); //jQuery对象

//解决冲突 : 

    1 如果其他JS库和jQuery库发生冲突,我们可以在任何时候调用 : jQuery.noConflict()函数来将变量$的控制权移交给其他JavaScript库

var $jaovo = jQuery.noConflict();
    $jaovo(function(){
      $jaovo("p").click(function(){
        alert($jaovo(this).text());
      });
    });

    2 可以直接使用"jQuery"来做一些jQuery的工作

jQuery(function(){
      jQuery("p".click(function(){
        alert(jQuery(this).text());
      }));
    });

//jQuery选择器

    1 基本选择器
        基本选择器是jQuery中最常用的选择器,也是最简单的选择器,他通过元素id、class 和 标签名 等来查找DOM元素

//jQuery :  

    只要获得标签对象 . 就是数组

//jQuery对象获取 :

    $("p");//获取所有p标签对象 ---- 获取的对象是数组
    $("#aa");//获取id为aa的那个标签的对象 --- 获取的对象是数组
    $(".aaa");//获取class为aaa的那个标签的对象 --- 获取的对象是数组

//jQuery对象和DOM对象的转换 : 

    jQuery的方法和DOM的方法不能互相使用(调用),但是对象可以互相转换
    $("p");//是jQuery对象
    document.documentElementsTagName("p");//是DOM对象
    $(document.documentElementsTagName("p"));//把DOM对象转换成jQuery对象
    $("p").get(1);//是一个DOM对象,
    get(1);代表p这个数组的第二位,(下标为1  就是第二位)
    $($("p").get(1));//是jQuery对象转成

    //jQuery对象转成DOM对象 :

    1 jQuery对象是一个类似数组,可以通过[index]的方法得到相应的DOM对象
        var $cr = $("#cr");//jQuery对象
        var cr = $[0]; //DOM对象
    2 另一种方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象
        var $cr = $("#cr");//jQuery对象
        var cr = $cr.get(0);//DOM对象

    //DOM对象转成jQuery对象 :

    对于一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了.
        方式为 : $(DOM对象);

        var cr = document.getElementById("cr");//DOM对象
        var $cr = $(cr); //jQuery对象

//创建元素 :

        $("<li title='其他'>123</li>");//创建<li>标签  属性为title=其他  内容为123
        元素节点(标签名)  属性节点(属性 title='xxx')  文本标签(123)

//text()文本节点 :

        text() : 函数/方法,是获得选定标签内部文本(人眼能够看到的内容)
        <li>123</li>
        var li = $("li").text();//获得了li的文本节点里面的数据(就是 123 这个内容)

//attr()获得属性/设置属性/更改属性 :

        <p title="aaa"></p>;

      var i = $("p").attr("title");//这是获得p标签里面的title属性的值
        $("p").attr("title"," bbb");//把p标签里面的title属性的值 更改为bbb

//removeAttr() 删除指定元素的属性值 :         

    removeAttr(xx,xx);删除属性值
    <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
    $("p").removeAttr('title',"你最不喜欢的");//就是把p标签里面的title属性的值,(你最不喜欢的)删除

//append()添加元素 :

        将匹配到的子元素 添加到指定的父元素中.
        函数的链式调用 : 为什么可以链式调用?
            是因为前面的函数返回的仍然是调用的那个对象
            如下面 a.append(b).append(c) a是个父标签对象,调用函数把b添加进去,并且返回的值,还是a的对象,所以还可以在调用函数,把c也添加进去

    //a和b和c 都是标签的对象

            var $li_1 = $("<li></li>");//只创建了元素节点
            var $li_2 = $("<li></li>");
            var $parent = $("ul");

            $parent.append($li_1).append($li_2);
        a.append(b);//把 b 添加到 a 里面 的最后面(追加),a是父标签b是子标签
        a.append(c);//把 c 添加到 a 里面 的最后面(追加),a是父标签c是子标签
        a.append(b).append(c);//把b c 都添加到 a 里面 b 和 c 是同辈 只是b在c的上面 (链式的调用添加)
        a.prepend(b)//把 b 添加到 a 里面 的最前面 a是父标签 b是子标签
        a.insertAfter(b);//把 a 添加到 b 的 后面(同辈的)

        a.insertBefore(b);//把 a 添加到 b 的 前面(同辈的)
        //叫移动节点 
        //把我们指定元素插入匹配到元素的前面(指定的元素.insertBefore("匹配到的元素"))

//appendTo()添加元素 :

   //a是对象 b是标签名
    appendTo() : 是将制定元素添加到匹配的元素的集合中去

    $("li").appendTo("ul");//把li标签添加到ul中
    a.appendTo("b"); //是吧 b 添加到 a 的里面(a是标签 b是标签)
        指定元素.appendTo(匹配元素);

//删除元素(是隐藏)remove() :

        a.remove();//把 a 从html中删除(是隐藏)
        var $li = $("ul li:eq(1)").remove();//把ul 里面li标签的第二个删除   eq(1);就是下标为1的那个li元素 也就是第二个吧 因为下标从0开始
        $li.appendTo("ul");//把刚才删除的元素重新加入到ul里面
        $("ul li").remove("li[title !=苹果]");//把 ul 元素里面所有的 li 元素 title属性不是苹果的 都删除

//removeAttr() 删除指定元素的属性值 :         

    removeAttr(xx,xx);删除属性值
    <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
    $("p").removeAttr('title',"你最不喜欢的");//就是把p标签里面的title属性的值,(你最不喜欢的)删除

//清空empty() :

        $("ul li:eq(1)").empty();//找到ul里面第二个li元素 并把内容删除,(文本节点,<li>内容(文本节点)<li>)

//复制选定的节点clone() :

        clone(true) : 复制节点,true的时候,节点绑定的事件监听也一起复制过去,不写默认为false

        $("li").clone()//复制当前节点
        $("li").clone().appendTo("ul");//复制li节点,并将它追加到ul中(是追加到 ul 的内部)
        $("li").clone(true).appendTo("ul");//复制li节点,并复制li绑定的事件监听,一起追加到ul中(是追加到 ul 的内部)

//替换选定的节点replaceWith(),replaceAll() :

        a是被替换的那个对象
        b是替换的那个完整标签
        a.replaceWith(b);//b就会把a替换掉 (后面的 b 替换了前面的 a)  后面替换前面
        b.replaceAll(a);//b把a替换掉  (前面的 b 替换后面的 a) 前面替换后面

        //如果有多个p  就会都替换

        $("p").replaceWith("<strong>你女朋友最不喜欢的水果是???</strong>");//把整个p标签都换了 换成了  <strong>你女朋友最不喜欢的水果是???</strong>

        //如果有多个p 并且只想替换一个

         $($("p").get(1)).replaceWith("<strong>你女朋友最不喜欢的水果是???</strong>");//只把第2个p标签替换了
         也可以给想要替换的那个标签 加一个ID  就是只替换一个了
         $("#abc").replaceWith("<li>我替换了id为abc的那个标签</li>")

         //replaceAll() :
         $("<strong>你妈咪最不喜欢的水果是???</strong>").replaceAll("#abc");//前面的替换了后面的 替换了id为#abc的那个标签
         $("<li>我替换了所有的p标签</li>").replaceAll("p");//前面替换了后面的

//包裹wrap() wraoAll() wrapInner() :

    //wrap() :

         wrap() : 给匹配 到的元素,包裹一个新的html标.
         a标签对象(被包裹)  b是标签(用b标签包裹)
        所有的 a标签 都会被包裹
            a.wrap(b);
        //如果有一个a标签  就包裹成 :
                <b><a>我是a标签</a></b>
        //如果有多个a标签  就包裹成 :
                <b><a>我是a标签</a></b>
                <b><a>我是a标签</a></b>
                <b><a>我是a标签</a></b>
                每个都是分开包裹的 不是一起包裹到一起
         a.wrap("b");//就是给a添加了一个父标签 a被b包裹
         <p>我是p标签</p>
          $("p").wrap("<i></i>");//给p标签添加一个父标签,就是用<i>标签把p标签包裹了 就成了<i><p>我是p标签</p></i>
          /*
           <i>
                <p>我是p标签</p>
           </i>
           */

   //wrapAll() :

        wrapAll():把标签都包裹到一起,就算要被包裹标签没在一起,中间有别的标签,也会吧那个要被包裹标签,都移到一起,在一起包裹
       //包裹之前
            <a>123</a>
            <p>aaa</p>
            <a>456</a>
        a.wrapAll(b);//全部包裹
        //包裹之后
            <b>
                <a>123</a>
                <a>456</a>
            </b>
            <p>aaa</p>
        这样包裹之后,输出的位置就变了,效果也就变了

    //wrapInner() :

            wrapInner(): 将匹配标签中的内容,添加一个指定标签(相当于是给原标签添加一个子标签,并且保存的是父标签的文本内容)
        <a>123</a> :
            a.wrapInner("b");//结果就是 : <a><b>123</b></a>   用b标签 把a里面的内容括起来
        <li title="苹果">苹果</li>
        $("li").wrapInner("<i></i>");//结果就是 : <li title='苹果'><i>苹果</i></li>
        <li title="苹果">
            <i>苹果</i>
        </li>

//效果切换 toggleClass() : 

        是指的效果之间的切换,第一次没有切换的时候有一个效果,切换的时候,是指所有的class综合组成的那个效果
        就是当前效果和指定的效果来回切换
         <style type="text/css">
         .high{
            font-weight:bold;   /* 粗体字 */
            color : red;        /* 字体颜色设置红色*/
        }
        .another{
            font-style:italic;
            color:blue;
        }
        </style>
         <p class="high" title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
         $("p").toggleClass("another ");//其实是改class,当触发这个函数的时候,就等于是把another和height换了一下,上面设置了,当class是high的时候,是红色字体,当class是another的时候,是蓝色字体
         所以,触发这个函数,就会变一次颜色,在触发一次,就在变一次,只不过是class之间的切换.是$("p").toggleClass("another")后面的class 和p标签里面原代的class进行切换

//判断元素是否包含某样式 hasClass() :

        $("p").hasClass("MyClass");//判断p标签里面是否有个class的属性为MyClass
        $("p").is("MyClass");//和上面一样

//html()和text() : 

        <p title="选择你最喜欢的水果." ><strong>你最喜欢的水果是?</strong></p>
        $("p").html();//就是p标签,两个标签(<p></p>)之间的内容,相当于是p的innerHTML,就是 : <strong>你最喜欢的水果是?</strong>
        $("p").text();//就是p标签里面的文本数据(文本节点),就是 : 你最喜欢的水果是?

//得到 失去 焦点 focus() blur() :

        focus() : 得到焦点
        blur() : 失去焦点
        $("标签名(#ID名)(.class名)").focus(获取焦点需要执行的方法和语句function(){ 语句 操作})
        $("标签名(#ID名)(.class名)").blur(失去焦点需要执行的方法和语句function(){ 语句 操作})

//获取/更改 value()值 defaultValue : 

        <input type="button" value="请输入账号"/>
        $("input").val();//这是获取value的值
        $("input").val("账号是****");//这是更改value的值
        结果就是 : <input type="button" value="账号是****"/>

    //defaultValue :
        代表value的默认值,就是编写代码的时候,设置value的值是什么,那defaultValue就是什么
        一般用于判断
        if (txt_value == ""){//意思是,如果value为空,就把开始的默认值再赋值给value
            用于设置输入框,如果输入框没有输出东西,就还把默认的value值输入进去,(没得到焦点的时候,输入框里显示默认值,得到焦点后,设置去掉默认值,如果客户没有输入东西,还会给value把默认值赋值回去,用于提醒客户,没有输入东西)
        $("input").val($("input").defaultValue)
        }

//查看子元素的个数children() (只是子元素,子元素的子元素,不算,直接子元素才是子元素) :

        $("标签").children();
        标签的jQuery对象.children();
        <a>
            <b>
                <c></c>
            </b>
            <d></d>
        </a>
        $("a").children();//就是2  因为a的子元素只有b和d

        $("b").children();//就是1 因为b的子元素只有c一个

        $("d").children();//就是0 因为d没有子元素

//同辈元素,next(),prev(),siblings() :

        next();//同辈的下一个元素
        prev();//同辈的上一个元素
        siblings();//所有的同辈元素
    <b>123</b>
    <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p>
    <ul>
      <li title='苹果'>苹果</li>
      <li title='橘子'>橘子</li>
      <li title='菠萝'>菠萝</li>
    </ul>
    <i>456</i>

   // 例子 : next()

   var p= $("p").next();
   p.html();//p元素的同辈下一个元素的内容(就相当于innerHTML),结果就是 :
            <li title='苹果'>苹果</li>
            <li title='橘子'>橘子</li>
            <li title='菠萝'>菠萝</li>
            p的同辈的下一个标签是ul,<ul>这里就是html()的东西</ul>
    ---------------------
      //  prev()

        var p = $("p").prev();
        p.html();//就是p的同辈元素的上一位 就是b 元素吧 b元素的html(), 就是123把 所以就是123

        123

    ----------------------
    //  siblings()

        var p = $("p").siblings();//所有元素,现在是数组把
        p.html();//这个,只是123,因为是数组,如果输出,输出第一个,所以就是b标签的内容就是123  要遍历才能看到所有内容
        for(var i =0;p.length;i++){
            alert(p[i].innerHTML);//这就是所有的内容,为什么用innerHTML?
            //因为p是jQuery对象吧,当jQuery对象,后面跟下标的时候,就是DOM对象了,所以只能用innerHTML.这个和jQuery对象的html()方法,功能是一样的,
            //alert();是个普通的弹框
            //结果就是 :
                    123
                    你最喜欢的水果是?
                    苹果
                    橘子
                    菠萝
                    456
        }

//事件委托机制 : 

        事件委托机制 : 我们要找到某个元素,改变其属性,但是这个元素我们不知道能不能找到,所以我们就用一个临时变量,把事件委托给他,然后去寻找元素,找到以后就把事件转交

    // $(自定义变量.target).closest("要找的元素").css("找到之后的某一个属性","更改属性值")
   
        //这里从点击对象开始往上查询(如果点击的是a,就会先找a,在找span,再找p,再找body,一直除非找到正确的那个标签,就停止网上找了)
            $(document).bind("click",function(e){
                $(e.target).closest("body").css("color","red");
                })
            //$(document).bind("click",function("p"){
             //   $("p").css("color","red");
             //   })

            //document:代表整个文档,我要匹配文档中某一个不确定对象,用了这样一种形式
            //e:是指我们要找的某个元素,他的是个不特定的值,$(e.target)是那个不特定的对象
            //来自于我们不特定的匹配,匹配到谁就是谁
        <body>
            <p title="选择你最喜欢的水果." >
                <span>
  
                <a title='苹果'>苹果</a>
                <a title='橘子'>橘子</a>
                <a title='菠萝'>菠萝</a>
                </span>
            </p>
            <ul>
                    <li title='苹果'>苹果</li>
                    <li title='橘子'>橘子</li>
                    <li title='菠萝'>菠萝</li>
            </ul>
        </body>

//获取对象的左边距和上边距 offset() :

        用法 :
            jQuery对象.offset();
            jQuery对象.offset().left/top;
        var $p = $("p").offset();//获得p的左边距和上边距,是个数组
        $p.left;//得到的值,就是左边距
        $p.top;//得到的值,就是上边距

//设置坐标并显示,show() :

        对象.css().show("slow(慢)"/"normal(正常)"/"fast(快)");
    三种预定速度之一的字符串("slow","normal","fast")或表示动画时长的毫秒数值(如:1000)
        $("#id").mouseover(function(e){
                //e相当于原生js中的event
                //创建一个div元素,e触发的事件对象(mouseover),this代表触发的时候,事件源对象(指html标签)
                var tooltip = "<div id='tooltip'>" + this.title + "<\/div>";
                $("body").append(tooltip); //追加到文档中
                $("#tooltip").css({
                    "top":e.pageY + "px",
                    "left":e.pageX + "px",
                    "width":"300px"
                    }).show("fast"); //设置x坐标和y坐标并且显示,这里的e,是当事件源触发这个事件的时候,事件和鼠标的相交的一个坐标,用这个坐标,表示这个框的左上角坐标
                })

Javascript 相关文章推荐
网页上的Javascript编辑器和代码格式化
Apr 25 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
jquery创建并行对象或者合并对象的实现代码
Oct 10 Javascript
js二级地域选择的实现方法
Jun 17 Javascript
只需一行代码,轻松实现一个在线编辑器
Nov 12 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
js实现简洁的滑动门菜单(选项卡)效果代码
Sep 04 Javascript
jQuery实现点击行选中或取消CheckBox的方法
Aug 01 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
基于jquery css3实现点击动画弹出表单源码特效
Aug 31 #Javascript
基于jQuery实现的向下滑动二级菜单效果代码
Aug 31 #Javascript
jquery实现可点击伸缩与展开的菜单效果代码
Aug 31 #Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
Aug 31 #Javascript
js实现黑色简易的滑动门网页tab选项卡效果
Aug 31 #Javascript
jquery实现点击变换导航样式的方法
Aug 31 #Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
Aug 31 #Javascript
You might like
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
JS给超链接加确认对话框的方法
2015/02/24 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
jquery实现标题字体变换的滑动门菜单效果
2015/09/07 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
jquery实现(textarea)placeholder自动换行
2016/12/22 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
Angular4学习笔记router的简单使用
2018/03/30 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
Skyscanner香港:机票比价, 平机票和廉价航空机票预订
2020/02/07 全球购物
MySQL面试题目集锦
2016/04/14 面试题
深入开展党的群众路线教育实践活动方案
2014/02/04 职场文书
大连导游词
2015/02/12 职场文书
医生辞职信范文
2015/03/02 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
浅谈pytorch中stack和cat的及to_tensor的坑
2021/05/20 Python
15个值得收藏的JavaScript函数
2021/09/15 Javascript
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫