jQuery

Posted oliver.lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery相关的知识,希望对你有一定的参考价值。

一 jQuery

1 简介

jQuery是一个“写得更少,但做得更多”的轻量级javascript库。jQuery极大地简化了JavaScript编程。

  • 它是轻量级的js(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
  • jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理html documentsevents、实现动画效果,并且方便地为网站提供AJAX交互。
  • jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

2 jQuery对象

  • jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
  • jQuery 对象是 jQuery 独有的如果一个对象是 jQuery 对象那么它就可以使用 jQuery 里的方法: $(“#test”).html();

      比如: 

      $("#test").html()   意思是指:获取IDtest的元素内的html代码。其中html()jQuery里的方法 

      这段代码等同于用DOM实现代码: document.getElementById(" test ").innerHTML; 

虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错

约定:如果获取的是 jQuery 对象那么要在变量前面加上$. 

var $variable = jQuery 对象

var variable = DOM 对象

 3 jQuery基本语法

$(selector).action()

二 jQuery选择器

http://jquery.cuishifeng.cn/index.html

1 基本选择器

 $("*")  $("#id")   $(".class")  $("element")  $(".class,p,div")

 

$("p.intro") 选取所有 class="intro" 的 <p> 元素。

 

$("p#demo") 选取所有 id="demo" 的 <p> 元素。

 

$("*").css("color","red").css("background-color","#8eb031");

$("#div2").css("color","red");

$(".div1").css("width","200px").css("background-color","#8eb031");

$("p").css("font-weight","700");

$(".div1,#div2").hide();

 

//防止文档在完全加载(就绪)之前运行jQuery代码

$(document).ready(function(){

--- jQuery functions go here ----

});

 2 层级选择器

$(".outer div")  $(".outer>div")   $(".outer+div")  $(".outer~div")

空格:后代选择器

> :子代选择器

+ :毗邻,即下一个紧邻的元素

~ :

3 属性选择器

$(\'[id="div1"]\')   $(\'["alex="sb"][id]\')

 

$("[class=\'div1\']").hide();

$("[id=\'div2\']").hide();

$("[alex=\'ss\']").hide();  // 支持自定义属性选择

4 表单选择器

 $("[type=\'text\']")----->$(":text")   注意只适用于input标签

两种方式均表示:所有 type="text" 的 <input> 元素。

$(":input")      //匹配所有 input, textarea, select 和 button 元素
$(":text")       //所有的单行文本框
$(":password")   //所有密码框
$(":radio")      //所有单选按钮
$(":checkbox")   //所有复选框
$(":submit")     //所有提交按钮
$(":reset")      //所有重置按钮
$(":button")     //所有button按钮
$(":file")       //所有文件域 
$("input:checked")    //所有选中的元素
$("select option:selected")    //select中所有选中的option元素

 三 jQuery筛选器

1 过滤筛选器

$("li").eq(2)        // 列表中的第3个元素(index从0开始)。

$("li").first()        // 列表中的第一个元素。

$("ul li").hasclass("test")  // 查看指定的元素是否拥有test类。

2 查询筛选器

$("div").children()      //div中的每个子元素,第一层
$("div").find("span")    //div中的包含的所有span元素,子子孙孙
$("p").next()          //紧邻p元素后的一个同级元素
$("p").nextAll()         //p元素之后所有的同级元素
$("#test").nextUntil("#test2")  //id为"#test"元素之后到id为\'#test2\'之间所有的同级元素,不包括自己和最后一个元素
$("p").prev()            //紧邻p元素的前一个同级元素
$("p").prevAll()         //p元素之前所有的同级元素
$("#test").prevUntil("#test2")  //id为"#test"元素之前到id为\'#test2\'之间所有的同辈元素,不包括自己和最后一个元素

$("p").parent() //每个p元素的父元素 
$("p").parents() //每个p元素的所有祖先元素,body
$("#td1").parentsUntil("#td2") //id为"#td1"元素到id为\'#td2\'之间所有的父级元素,掐头去尾 
$("div").siblings() //所有的同级元素,不包括自己 

 3 实例

菜单隐藏与显示

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript" src="jquery-3.1.1.js"></script>
 7     <script>
 8         function show(self) {
 9             $(self).next().removeClass(\'hide\');
10             $(self).parent().siblings().children(".con").addClass(\'hide\');
11         }
12     </script>
13     <style>
14         *{
15             margin: 0 auto;
16         }
17 
18         .menu{
19             float: left;
20             height: 600px;
21             background-color: #0081c2;
22             width: 20%;
23         }
24 
25         .content{
26             float: left;
27             height: 600px;
28             background-color: #9aaece;
29             width: 80%;
30         }
31 
32         .title{
33             line-height: 30px;
34             color: #fff;
35             background-color: #015e98;
36             padding-left: 10px;
37             border-bottom: solid 1px #3A557A;
38         }
39 
40         .con div{
41             padding-left: 13px;
42         }
43 
44         .hide{
45             display: none;
46         }
47     </style>
48 </head>
49 <body>
50     <div class="left">
51         <div class="menu">
52             <div class="item">
53                 <div class="title" onclick="show(this)">集群管理</div>
54                 <div class="con">
55                     <div>集群管理</div>
56                     <div>主机管理</div>
57                     <div>虚拟机管理</div>
58                 </div>
59             </div>
60             <div class="item">
61                 <div class="title" onclick="show(this)">视图管理</div>
62                 <div class="con hide">
63                     <div>集群视图</div>
64                     <div>主机视图</div>
65                     <div>虚拟机视图</div>
66                 </div>
67             </div>
68             <div class="item">
69                 <div class="title" onclick="show(this)">系统管理</div>
70                 <div class="con hide">
71                     <div>用户管理</div>
72                     <div>规则管理</div>
73                     <div>系统设置</div>
74                 </div>
75             </div>
76         </div>
77     </div>
78     <div class="content"></div>
79 </body>
80 </html>
View Code

 四 jQuery属性

  • attr()          // 返回或设置被选元素的属性值
  • removeAttr()       // 从每一个匹配的元素中删除一个属性
  • prop()                 // 设置或返回匹配元素的属性值    select,check,radio标签用prop,其它用attr。
  • removeProp()    //  用来删除由.prop()方法设置的属性集
$("img").attr("src");

$("img").attr({ src: "test.jpg", alt: "Test Image" });

$("img").removeAttr("src");

$("input[type=\'checkbox\']").prop("checked");

 五 jQuery中CSS类操作

  • addClass()             // 为每个匹配的元素添加指定的类名。
  • removeClass()      //  从所有匹配的元素中删除全部或者指定的类。
$("p").addClass("selected");

$("p").removeClass("selected");

 六 jQuery中HTML代码/文本/值 操作

  • html()            // 获取第一个匹配元素的HTML内容。不加参数获取值,加参数设置值
  • text()             // 获取匹配元素中所有内容,不渲染。不加参数获取值,加参数设置值
  • val()              // 获得匹配元素的当前值。不加参数获取值,加参数设置值

 七 jQuery位置操作

  • offset()        // 获取匹配元素距离文档top和left的距离。offset().top,offset().left
  • position       // 获取匹配元素相对父元素的距离(偏移)。
  • scrollTop()   // 获取匹配元素相对滚动条顶部的偏移。
  • scrollLeft()   // 获取匹配元素相对滚动条左侧的偏移。

八 jQuery尺寸操作

  • height()    // 当前元素自身的高度
  • width()     // 当前元素自身的宽度
  • innerHeight()   // 自身高度 + padding
  • innerWidth()    // 自身宽度 + margin
  • outerHeight()  // 默认参数为false
    • 参数为false时,自身高度 + padding + border
    • 参数为true时,自身高度 + padding + border + margin  
  • outerWidth()   // 默认参数为false
    • 参数为false时,自身宽度 + padding + border
    • 参数为true时,自身宽度 + padding + border + margin  

获取文档高度:    $(document).height()

获取窗口高度:     $(window).height()

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript" src="jquery-3.1.1.js"></script>
 7 </head>
 8 <body>
 9     <input type="button" value="全选" onclick="selectall()">
10     <input type="button" value="取消" onclick="cancel()">
11     <input type="button" value="反选" onclick="reverse()">
12     <table border="1">
13         <tr>
14             <td><input type="checkbox"></td>
15             <td>111111</td>
16         </tr>
17         <tr>
18             <td><input type="checkbox"></td>
19             <td>222222</td>
20         </tr>
21         <tr>
22             <td><input type="checkbox"></td>
23             <td>333333</td>
24         </tr>
25         <tr>
26             <td><input type="checkbox"></td>
27             <td>444444</td>
28         </tr>
29     </table>
30 <script>
31     function selectall() {
32 //        obj = document.body;
33 //        obj.a = 1
34 //        obj.b = 2
35 //        obj.attributes = { \'id\':xx, \'\':\'\'}
36 //        obj.attributes.type = 123
37 //        obj.a = 123;
38         // select,check,radio prop  obj.checked = True
39         // <div alex=\'name\'></div>
40 //        $("table :checkbox").attr("checked",true)
41         $("table :checkbox").prop("checked",true)
42     }
43 
44     function cancel() {
45 //        $("table :checkbox").attr("checked",false);     // 不成功
46         $("table :checkbox").prop("checked",false);
47 //        $("table :checkbox").removeAttr("checked")
48 //        $("table :checkbox").removeProp("checked")    // 不成功
49     }
50     
51     function reverse() {
52         $("table :checkbox").each(function () {
53             if ($(this).prop("checked")){
54                 $(this).prop("checked",false)
55             }else {
56                 $(this).prop("checked",true)
57             }
58         })
59     }
60 </script>
61 </body>
62 </html>
复选框正反选
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6     <script type="text/javascript" src="jquery-3.1.1.js"></script>
 7     <style>
 8         *{
 9             margin:markdown 在WordPress中使用jQuery代码片段

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

很实用的JQuery代码片段(转)

几个有用的JavaScript/jQuery代码片段(转)

几个非常实用的JQuery代码片段

高效Web开发的10个jQuery代码片段