JQuery 的简单介绍

来源:互联网 发布:淘宝优质网店怎么搜 编辑:程序博客网 时间:2024/06/02 04:15
  • JQuery的优势
    • 强大的选择器
    • 出色的DOM封装
    • 可靠的事件处理机制
    • 出色的浏览器兼容性
    • 使用隐式迭代简化编程
    • 丰富的插件支持
    • 体积小,压缩后只有100KB左右
    • 在页面中引入jQuery
  • 首先需在页面中引入jQuery.
    引入方法:
    <script src="js文件路名" type="text/javascript"></script>

jQuery语法结构

  • $(selector).action() ;
  • $(document).ready() 等同于 jQuery(document).ready()
    • 工厂函数()”等同于“jQuery” 将DOM对象转化为jQuery对象
    • 选择器selector:获取需要操作的DOM元素(document)
    • 方法action():jQuery中提供的方法,包括绑定事件处理的方法
      示例:
    $("#current").addClass("current");   //  id选择    $("input").addClass("current");  //  标签选择    $(".current").addClass("other");  //  class类名选择

jQuery的一般方法

  • css(); 为元素设置CSS样式的值
  • addClass(0;) 为元素添加类样式
  • html(“HTML代码”)为元素设置innerHTML的值
  • 连续操作直接加点

$("h2").css("background-color", "#CCFFFF").next().css("display", "block");

示例:设置元素样式

<head lang="en">    <meta charset="UTF-8">    <title></title>    <!--引入jQuery,"js/jquery-2.2.4.js"文件-->    <script src="js/jquery-2.2.4.js" type="text/javascript"></script>    <style>        .mm{            border:5px solid #000        }    </style></head><body>    <img class="first" id="img" src="../html/shop_41.png" alt="默认文字" title="悬浮文字"style="width: 200px;"/>    <script>        //js   方法一:Javascript 单击动态添加样式        var m=document.getElementsByClassName("first")[0];        m.onclick=function(){            // 设置图片的边框样式为 5px solid red.            this.style.border="5px solid red";        }        // jQuery,鼠标悬浮后特效        $(".first").mouseover(function(){            $(".first").css("border","5px solid yellow")        })    </script></body>

$(document).ready() 和window.onload 区别

  • 执行时机:
    • window.onload必须等待网页中所有的内容加载完毕后(包括图片、flash等)才能执行,
    • ready()网页中所有DOM文档结构绘制完毕后即可执行,DOM内容不一定加载完
  • 编写个数:
    • onload:同一面不能荣氏编写多个
    • ready():同一页面能同时编写多个
  • ready简写 $(function(){

    })

jQuery和DOM的互相转化

  • Query对象是一个类似数组的对象,可以通过[index]的方法得到相应的DOM对象
var $txtName = $ (".txtName");//jQuery对象var txtName  = $txtName[0]; //DOM对象
  • 通过get(index)方法得到相应的DOM对象
var $txtName = $ (".txtName");//jQuery对象var txtName = $txtName.get(0);//DOM对象
  • DOM对象转换为jQuery对象:只需要在DOM加$();
    1.常使用(this)jQuery2.jQuery开头

jQuery选择器

  • jQuery选择器类似于CSS选择器,用来选取网页中的元素
//获取并设置网页中所有<h3>元素的背景$( "h3" ).css( "background", "#09F" );
  • jQuery选择器功能强大,种类也很多,分类如下
    • 类CSS选择器
      • 基本选择器:标签、类、ID、并集、交集、、全局选择器
      • 层次选择器:层次选择器通过DOM 元素之间的层次关系来获来获取元素
        • 后代选择器 $(#menu span)
        • 子选择器 $(parent>child)
        • 相邻元素选择器 (preb+next)(“h2+dl”)
        • 同辈元素选择器:$(“prev~sibing”) 选取prev元素之后的所有siblings元素。
      • 属性选择器:
        • 属性选择通过HTML元素的属性来选择元素。
        • [attribute] 选取包含给定属性的元素
        • [attribute=value] 选取等于给定属性是某个特定值的元素
        • [attribute!=value]
        • [attribute^=value] 选取给定属性是以某些特定值开始的元素 $(“input[type^=’te’]”)
        • [attribute$=value] 选取给定属性是以某些特定值结尾的元素
        • [attribute*=value] 选取给定属性是以包含某些值的元素
        • [selector][selector2][selectorN] 选取满足多个条件的复合属性的元素。
    • 过滤选择器
      • 基本过滤选择器
        • :first
        • :last
        • :even 选取索引是偶数的所有元素(从index为哦开始)
        • :odd 选取索引号是奇数的所有元素 $(“li:odd”)
        • :eq(index) 选取索引等于index的元素
        • :gt(index) 选取索引大于index
        • :lt(index) 选取索引小于index
        • :not(selector)
        • :header 选取所有标题元素,如h1~h2。
        • :focus 选取当前获取焦点的元素
      • 可见性过滤选择器
        • visible 选取所有可见的元素
        • hidden 选取所有隐藏的元素
        • -
    • 表单选择器
      • 表单中根据不同类型的表单元素进行选取
      • :+表单—:input:text、password、radio、submit、checked、selected等
    • 内容过滤器
      • :contains(text) 选取所有包含text文本的元素。
      • :empty 选取所有不含子元素或文本的空元素
      • :has(selector) 选取包含选择所匹配的元素的元素
      • :parent 选取含有子元素或者文本的元素。

在选择器中特殊符号需要转移。“\”

选择器的书写规范很严格,多一个空格或少一个空格,都会影响选择器的效果


jQuery中和DOM中写法区别

jQuery DOM val value .html(“”) .innerHTML

jQuery 进行DOM操作

  • DOM操作分为三类:
    • DOM Core:任何一种支持DOM的编程语言都可以使用它,如getElementById()
    • HTML-DOM:用于处理HTML文档,如document.forms
    • CSS-DOM:用于操作CSS,如element.style.color=”green”
      获取元素的属性值
    • getConputedStyle(a).width
    • element.style.color
  • jQuery中的DOM操作
    • jQuery对JavaScript中的DOM操作进行了封装,使用起来更简便
    • jQuery中的DOM操作可分为:
      • 样式操作
      • 内容及value属性值操作
      • 节点操作
      • 节点属性操作
      • 节点遍历
      • CSS-DOM操作
  • 使用CSS()指定的额元素设置样式

    $(this).css( "border" , "5px solid #f5f5f5" );
    $(this).css( { "border" : "5px solid #f5f5f5" , "opacity" : "0.5" } ); // JSON格式

    opacity 0~1之间的数字 透明度。对象的名称JSON可以中括号开始和花括号开始
    JSON(JavaScript Object Notation)一种轻量级的数据交互格式
    点号表示法来获取

实例:

  var json={            "students":[                {"name":"zs","age":"20"},                {"name":"ls","age":"19"}            ]        }        console.log(json.students[0].age)        alert(json.students[1].name);


  • 追加和移除样式
    • addClass(“class”) 或 addClass(“class1 class2 .. “)
      -removeClass(“class”) 或 removeClass(“class1 class2 .. “)

多个class用空格分开

<head lang="en">    <meta charset="UTF-8">    <title></title>    <script src="js/jquery-2.2.4.js"></script>    <style>        .bg{            background: cornflowerblue;        }        .color{            color:yellow;        }    </style></head><body>    <div>jQuery追加和移除addClass样式</div>    <script>        //单机追加样式、双击移除样式        $("div").click(function(){            $("div").addClass("bg color");        }).dblclick(function(){            $(this).removeClass("bg color")        })    </script></body>

jQuery的简单操作

  • HTML代码操作
    • html()可以对HTML代码进行操作,类似于原生JavaScript中的innerHTML
//获取html内容$("div.left").html();//设置html内容$("div.left").html("<divclass='content'>…</div>");
  • 文本操作
    • text()可以获取或设置元素的文本内容
$("div.left").text();$("div.left").text("<divclass='content'>…</div>");
  • value值操作
    • val()可以获取或设置元素的value属性值
    // 获取value值    - $(input).val();         // 设置value值    - $(input).val("值");   

节点操作

- jQuery中节点操作主要分为:查找节点、创建节点、插入节点、删除节点、替换节点、复制节点

- 创建节点元素
- 工厂函数()(selector):通过选择器获取节点
- (element)DOMjQuery(html):使用HTML字符串创建jQuery节点
- 插入子节点
- 元素内部插入子节点
- (A).append(B)BA(A).appendTo(B) 将A追加到B中
- (A).prepend(B)BA(A).prependTo(B) 将A前置插入到B中
- 元素外部插入同辈节点
- (A).after(B)BA(A).insertAfter(B) 将A插入到B之后
- (A).before(B)BA(A).insertBefore(B) 将A插入到B之前
- 删除节点
- remove():删除整个节点
- detach():删除整个节点,保留元素的绑定事件、附加的数据
- empty():清空节点内容
- 替换节点
- replaceWith()和replaceAll()用于替换节点
- 复制节点:clone()用于复制节点
- (A).clone(true).appendTo(B);//trueclone()idid使classidattr()removeAttr()(selector).removeAttr( “属性名称” );

// 获取元素的某属性的值$(selector).attr("属性名");//设置元素的一个属性值$(selector).attr("属性名","值"  );  // 设置多个属性值$(selector).attr( { "属性1" : "值1"  ,  "属性2" : "值2" } );  
  • 遍历子元素
    • $(A).children()方法可以用来获取元素的所有子元素,不考虑后代元素
  • 遍历同辈元素
    • $(A).next() 用于获取紧邻A之后的元素
    • $(A).prev() 用于获取紧邻A之前的元素
    • $(A).siblings() 用于获取位于A前面和后面的所有同辈元素
    • 遍历前辈元素
    • $(A).parent():获取A的父级元素
    • (A).parents()A(A).parents(“B”) 所有父级元素中的B级元素
  • 其他
    • jQuery遍历 – each()
    • 以每一个匹配的元素作为上下文来执行一个函数
    <button>点击显示图片</button>    <p></p>    <img src="" alt=""/>    <img src="" alt=""/>    <script>        $("button").click(function(){           $("img").each(function(i,elem){                this.src="img/index_"+i+".jpg"           })        })    </script>
  • 查找方法 – find()
    • 搜索所有与指定表达式匹配的元素
      $(“p”).find(“span”); // 在所有p元素的后代节点中查找span元素
  • CSS-DOM操作
         除css()外,还有获取和设置元素高度、宽度、相对位置等的样式操作方法
    • .height() 不带单位
    • .width()
    • .offset() 返回一以像素为单位的top和left 坐标。此方法仅对可见元素有效。

jQuery的事件

jQuery事件是对JavaScript事件的封装,常用事件分类如下:
- 基础事件
- window事件
- 鼠标事件
- click(fn) 单机鼠标时
- mouseover(fn) 鼠标移过时
- mouseout(fn) 鼠标移除时
- 键盘事件
- keydown() 按下键盘时
- keyup() 释放按键时
- keypress() 产生可打印的字符
- 表单事件
- focus() 获得焦点
- blur() 失去焦点
- submit() 表单提交时
- 复合事件是多个事件的组合
- 鼠标光标悬停
- 鼠标连续点击

示例:简单实现购物车添加删除操作

//<body>      <table border="1" cellpadding="0" cellspacing="0">        <tr>            <td><label><input type='checkbox'/>全选</label></td>            <td>商品信息</td>            <td>单价</td>            <td>数量</td>            <td>操作</td>        </tr>        <tr>            <td><input type='checkbox'/></td>            <td>电脑</td>            <td>5000</td>            <td><input type='text' value='1'></td>            <td><a href="#">删除</a></td>        </tr>    </table>    <button>点击新增</button>    <script>        $("button").click(function(){            // 声明变量,存储新增行,变量中全用单引号,方便拼接。(必须放在单击事件内,否则只能生成一次)            var newnode=$(                    "<tr>"+                    "<td><input type='checkbox'/></td>"+                    "<td>电视</td>"+                    "<td>3000</td>"+                    "<td><input type='text' value='1'></td>"+                    "<td><a href='#'>删除</a></td>"+                    "</tr>"            );            // 新增节点            $("table").append(newnode)        });        // 使用事件委托,删除节点        $("table").on("click","a",function(){            $(this).parents("tr").remove();        })    </script> </body>   

事件绑定

  • bind()事件绑定
    unbind()方法 – 解除事件绑定
  • on()方法 事件绑定
    $("#form").on( "click" , ".btn" , {} , fn );
  • off()方法 – 解除事件绑定
    (selector).off(events,[selector],[handler])(selector).off(events,[selector])
    (selector).off(events)(selector).off()

    常用on进行绑定

  • 鼠标光变悬停事件:hover(fn1,fn2)

    • 相当于mouseover与mouseout事件的组合
    • fn1,鼠标悬停mouseover时的方法
    • fn2,鼠标离开mouseover时的方法
  • 鼠标连续click事件(过时)
    • toggle()方法 可以切换元素
      • toggleClass() 改变class

Query的动画效果

  • jQuery提供了很多动画效果,如:
    • 控制元素显示与隐藏
    • 控制元素淡入淡出
    • 改变元素高度
  • 显示及隐藏元素
    • show([duration],[complete])
    • hide([duration],[complete])
      $(".tipsbox").show("slow");
  • 淡入淡出效果
    • fadeIn()和fadeOut()可以通过改变元素的透明度实现淡入淡出效果
  • 明度实现淡入淡出效果
  • toggle()除了可以模拟鼠标的连续单击事件外,还能用于切换元素的可见状态
    $("li:gt(5):not(:last)").toggle();
    示例:
<body>        <button>显示</button>        <button>隐藏</button>        <button>淡入</button>        <button>淡出</button>        <div>        Lorem ipsum dolor sit amet, consectetur adipisicing         </div>        <script>            $("button").eq(0).click(function(){                $("div").show("slow")            })            $("button").eq(2).click(function(){                $("div").fadeIn("slow")            })            $("button").eq(1).click(function(){                $("div").hide("slow")            })            $("button").eq(3).click(function(){                $("div").fadeOut("slow")            })        </script>
  • 改变元素的高度
    • slideDown() 可以使元素逐步延伸显示
    • slideUp()则使元素逐步缩短直至隐藏
  • 自定义动画:animate()
    • 方法用于创建自定义动画的函数
      $(selector).animate( params[,speed][,easing][,fn]);
      params:规定产生动画效果的CSS样式和值
      speed:三种预定速度之一的字符串(“slow”,”normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)。
      easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供”linear” 和 “swing”。
      fn:在动画完成时执行的函数,每个元素执行一次。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃辣的嗓子疼怎么办 美团客户更改地址怎么办 忘记steam的账户名称怎么办 重置手机忘了密码怎么办 sp下行短信费扣怎么办 hr公司业务员招不到人怎么办 卖房中介被房倒压房子怎么办 电脑放不了dvd光盘怎么办 股东迟迟不交齐股本金怎么办 wps转pdf就乱了怎么办 被有用分期骗了怎么办 找不到以前有用分期的账号怎么办 打工去韩国不懂韩语怎么办? 想去韩国整容没钱怎么办 专接本没接上怎么办 抄写经文写错了怎么办 在外地修车被宰怎么办 国外汇款公司名称写错了怎么办 增值税专票没有机器编码怎么办 发票右上角的编码打不全怎么办 税票名称开错了怎么办 开票名称开错了怎么办 退休党员不交党费怎么办 cad打不出来字怎么办 用cad打不出来字怎么办 打字总打错字母怎么办 mac做ppt卡住了怎么办 mac的ppt卡住了怎么办 淘宝店铺被屏蔽了怎么办 淘宝申请售后卖家拒绝怎么办 淘宝投诉卖家入口关闭怎么办 遇见最喜欢孩子的父母怎么办 房屋备案表丢了怎么办 淘宝发布商品没有品牌怎么办 电子发票名称写错了怎么办 合同写错了划掉怎么办 进京证日期错了怎么办 买车时谈的协议与合同不一致怎么办 新车上牌找不到流水号怎么办 开票数量比入库数量少怎么办 我贷款的app忘了怎么办