一、jQuery是什么?

1、   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team。

2、   jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE!

3、  它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器

4、  jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。

5、  jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

二、什么是jQuery对象?

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

$("#test").html() 

         意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法 

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

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

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

var $variable = jQuery 对象
var variable = DOM 对象 $variable[0]:jquery对象转为dom对象 $("#msg").html(); $("#msg")[0].innerHTML

jQuery的基础语法:$(selector).action();

参考:http://jquery.cuishifeng.cn/

三、寻找元素(选择器和筛选器)

1、选择器

1)、基本选择器

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

2)、层级选择器

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

3)、基本筛选器

$("li:first")  $("li:eq(2)")  $("li:even") $("li:gt(1)")

4)、属性选择器

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

5)、表单选择器

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

6)、表单属性选择器

    :enabled
:disabled
:checked
:selected
<body>

<form>
<input type="checkbox" value="123" checked>
<input type="checkbox" value="456" checked> <select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3" selected="selected">Trees</option>
<option value="3" selected="selected">Trees</option>
</select>
</form> <script src="jquery.min.js"></script>
<script>
// console.log($("input:checked").length); // 2 // console.log($("option:selected").length); // 只能默认选中一个,所以只能lenth:1 $("input:checked").each(function(){ console.log($(this).val())
}) </script> </body>

2、筛选器

1)、过滤筛选器

$("li").eq(2)  $("li").first()  $("ul li").hasclass("test")

2)、查找筛选器

 查找子标签:         $("div").children(".test")      $("div").find(".test")  

 向下查找兄弟标签:    $(".test").next()               $(".test").nextAll()
$(".test").nextUntil() 向上查找兄弟标签: $("div").prev() $("div").prevAll()
$("div").prevUntil()
查找所有兄弟标签: $("div").siblings() 查找父标签: $(".test").parent() $(".test").parents()
$(".test").parentUntil()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-3.1.1.js"></script>
</head>
<body> <div egon="dog" alex="dog2">egon</div>
<div egon="dog">egon</div> <div class="outer">
<div class="c2">
<div class="c3" id="d3">DIV</div>
</div>
<p id="d2" class="c3">PPPPPPP</p>
</div> <input type="text"> <div>
<p class="c1">p1</p>
<p class="c1" id="d1">p2</p>
<p class="c1">p3</p>
<p class="c1">p4</p>
<p class="c1">p5</p>
<p class="c1" id="p6">p6</p>
</div> <div>
<p>12321</p>
</div>
<p class="c1"> p7</p>
<script> // 基本选择器 //$("#d1").css("color",'red')
//$(".c1").css("color",'red')
//$("p").css("color",'green')
// $("#d1,div").css("color",'green') // 组合选择器 // $(".outer .c3").css("color",'red') // 筛选器
// $(".c1:first").css("color",'red')
// $(".c1:last").css("color",'red') // $(".c1:eq(i)").css("color",'red');
// $(".c1:gt(1)").css("color",'red') // 属性选择器 // $("[egon='dog'][alex]").css("color",'red') // 表单选择器 :只适用于表单标签 // $("[type='text']").val("hello")
// $(":text").val("hello") // 筛选器
// var i=3;
// $(".c1").eq(i).css("color",'red')
// console.log($("#d1").hasClass("c1")) // true // 查找筛选器 // 向下查找
//$("#d1").nextAll().css("color",'red')
//$("#d1").next().css("color",'red')
//$("#d1").nextUntil("#p6").css("color",'red') // 向上查找 // $("#p5").prev();
// $("div").prevAll();
// $("div").prevUntil() // 查找所有的兄弟标签
// $("#d1").siblings().css("color",'red') // find :找后代 children:找儿子
// console.log($(".outer").children().length) ;// 2
// $(".outer").children(".c3").css("color","red") // console.log($(".outer").find());
//
// $(".outer").find(".c3").css("color","red") // 找父标签 // $("#d3").parent().parent();
// $("#d3").parents();
// $("#d3").parentsUntil(".outer") </script> </body>
</html>

选择器

四、操作元素(属性,CSS,文档处理)

1、事件

1)、页面载入

ready(fn)  // 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数。
$(document).ready(function(){}) -----------> $(function(){}) 

2)、事件绑定

//语法:  标签对象.事件(函数)
eg: $("p").click(function(){})

3)、事件委派

$("").on(eve,[selector],[data],fn)  // 在选择元素上绑定一个或多个事件的事件处理函数。
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<hr>
<button id="add_li">Add_li</button>
<button id="off">off</button> <script src="jquery.min.js"></script>
<script>
$("ul li").click(function(){
alert(123)
}); $("#add_li").click(function(){
var $ele=$("<li>");
$ele.text(Math.round(Math.random()*10));
$("ul").append($ele) }); // $("ul").on("click","li",function(){
// alert(456)
// }) $("#off").click(function(){
$("ul li").off()
}) </script>

4)、事件切换

hover事件:

一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法,这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态。

over:鼠标移动到元素上要触发的函数。

out:鼠标移出元素要触发的函数。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
padding: 0;
}
.test{ width: 200px;
height: 200px;
background-color: wheat; }
</style>
</head>
<body> <div class="test"></div>
</body>
<script src="jquery.min.js"></script>
<script>
// function enter(){
// console.log("enter")
// }
// function out(){
// console.log("out")
// }
// $(".test").hover(enter,out) $(".test").mouseenter(function(){
console.log("enter")
}); $(".test").mouseleave(function(){
console.log("leave")
}); </script>
</html>

2、属性操作

--------------------------CSS类
$("").addClass(class|fn)
$("").removeClass([class|fn]) --------------------------属性
$("").attr();
$("").removeAttr();
$("").prop();
$("").removeProp(); --------------------------HTML代码/文本/值
$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr]) ---------------------------
$("#c1").css({"color":"red","fontSize":"35px"})

attr方法使用:

<input id="chk1" type="checkbox" />是否可见
<input id="chk2" type="checkbox" checked="checked" />是否可见 <script> //对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
//对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。
//像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此
//需要使用prop方法去操作才能获得正确的结果。 // $("#chk1").attr("checked")
// undefined
// $("#chk1").prop("checked")
// false // ---------手动选中的时候attr()获得到没有意义的undefined-----------
// $("#chk1").attr("checked")
// undefined
// $("#chk1").prop("checked")
// true console.log($("#chk1").prop("checked"));//false
console.log($("#chk2").prop("checked"));//true
console.log($("#chk1").attr("checked"));//undefined
console.log($("#chk2").attr("checked"));//checked
</script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-3.1.1.js"></script>
<script> // juqery事件绑定方式1: juqery对象.事件(function(){}) // $("ul li").click(function () {
//
// // $(this) : 代指的是当前点击的标签,一个jquery对象
//
// alert($(this).html())
//
// });
//
// $("button").click(function () {
// var $li=$("<li>"); // <li></li>
//
// $li.html("444");
//
// $("ul").append($li)
// }) //=================================================================================
// 事件绑定on方法 // $("button").click(function () {
// alert(123)
// }); // $("button").on("click",function () {
// alert(123)
// }); // 事件委派 // $("button").click(function () {
// var $li=$("<li>"); // <li></li>
//
// $li.html("444");
//
// $("ul").append($li)
// });
//
//
// $("ul").on("click","li",function () {
// alert(123)
// }); //=================================================================================
$(function () { $("button").click(function () {
var $li=$("<li>"); // <li></li> $li.html("444"); $("ul").append($li)
}); $("ul").on("click","li",function () {
alert(123)
}); }); // $(document).ready(function () {
//
// // pass
//
// }) </script>
</head>
<body> <ul>
<li>111</li>
<li>222</li>
<li>333</li> </ul> <button>add</button> </body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-3.1.1.js"></script>
<script> // juqery事件绑定方式1: juqery对象.事件(function(){}) // $("ul li").click(function () {
//
// // $(this) : 代指的是当前点击的标签,一个jquery对象
//
// alert($(this).html())
//
// });
//
// $("button").click(function () {
// var $li=$("<li>"); // <li></li>
//
// $li.html("444");
//
// $("ul").append($li)
// }) //=================================================================================
// 事件绑定on方法 // $("button").click(function () {
// alert(123)
// }); // $("button").on("click",function () {
// alert(123)
// }); // 事件委派 // $("button").click(function () {
// var $li=$("<li>"); // <li></li>
//
// $li.html("444");
//
// $("ul").append($li)
// });
//
//
// $("ul").on("click","li",function () {
// alert(123)
// }); //=================================================================================
$(function () { $("button").click(function () {
var $li=$("<li>"); // <li></li> $li.html("444"); $("ul").append($li)
}); $("ul").on("click","li",function () {
alert(123)
}); }); // $(document).ready(function () {
//
// // pass
//
// }) </script>
</head>
<body> <ul>
<li>111</li>
<li>222</li>
<li>333</li> </ul> <button>add</button> </body>
</html>

事件绑定

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body> <textarea class="c2" ></textarea> <select name="pro" id="d1">
<option value="hebei">河北省</option>
<option value="hubei">湖北省</option>
<option value="hunan">湖南省</option>
</select> <div value="123" class="c3">DIV</div>
<button>show</button>
<script src="jquery-3.1.1.js"></script>
<script> // 取值:
console.log($(".c1").val()); // 123
console.log($(".c2").val()); // 123 // 赋值:
$(".c1").val("hello"); //
$(".c2").val("hello world") ;// $("button").click(function () {
// console.log($(".c2").val())
// console.log($("#d1").val()) }) </script> </body>
</html>

val操作

3、each循环

$("p").css("color","red")

是将CSS操作加到所有的标签上,内部维持一个循环,但如果对于选中标签进行不同处理,这时

就需要对所有标签数组进行循环遍历啦。

jQuery支持两种循环方式:

1)、方法一:

格式:$.each(obj,fn)

li=[10,20,30,40];
dic={name:"yuan",sex:"male"};
$.each(li,function(i,x){
console.log(i,x)
});

2)、方式二:

格式:$("").each(fn)

$("tr").each(function(){
console.log($(this).html())
})

其中,$(this)代替当前循环标签。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> </head>
<body> <p>111</p>
<p>222</p>
<p>333</p> <script src="jquery-3.1.1.js"></script>
<script> $("p").css("color","red") // $,each的遍历循环方式1: $.each(obj,function)==================================== var arr=[11,2,343];
var obj={"name":"yuan","age":"322"}; $.each(obj,function (i,v) {
console.log(i,v)
}); $.each(arr,function (i,v) {
console.log(i,v)
}) // $,each的遍历循环方式2:$("").each(function) $("p").each(function (i) {
console.log(i); if(i==1){
$(this).css("color","red")
}
console.log($(this).html())
}) </script> </body>
</html>

each循环

3)each扩展

/*
function f(){ for(var i=0;i<;i++){ if (i==2){
return
}
console.log(i)
} }
f(); // 这个例子大家应该不会有问题吧!!!
//----------------------------------------------------------------------- li=[11,22,33,44];
$.each(li,function(i,v){ if (v==33){
return ; // ===试一试 return false会怎样?
}
console.log(v)
}); //------------------------------------------ // 大家再考虑: function里的return只是结束了当前的函数,并不会影响后面函数的执行 //本来这样没问题,但因为我们的需求里有很多这样的情况:我们不管循环到第几个函数时,一旦return了,
//希望后面的函数也不再执行了!基于此,jquery在$.each里又加了一步:
for(var i in obj){ ret=func(i,obj[i]) ;
if(ret==false){
return ;
} }
// 这样就很灵活了:
// <1>如果你想return后下面循环函数继续执行,那么就直接写return或return true
// <>如果你不想return后下面循环函数继续执行,那么就直接写return false // ---------------------------------------------------------------------

4、文档节点处理

//创建一个标签对象
$("<p>") //内部插入 $("").append(content|fn) ----->$("p").append("<b>Hello</b>");
$("").appendTo(content) ----->$("p").appendTo("div");
$("").prepend(content|fn) ----->$("p").prepend("<b>Hello</b>");
$("").prependTo(content) ----->$("p").prependTo("#foo"); //外部插入 $("").after(content|fn) ----->$("p").after("<b>Hello</b>");
$("").before(content|fn) ----->$("p").before("<b>Hello</b>");
$("").insertAfter(content) ----->$("p").insertAfter("#foo");
$("").insertBefore(content) ----->$("p").insertBefore("#foo"); //替换
$("").replaceWith(content|fn) ----->$("p").replaceWith("<b>Paragraph. </b>"); //删除 $("").empty()
$("").remove([expr]) //复制 $("").clone([Even[,deepEven]])
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.c1{
width: 300px;
height: 300px;
border: solid red 2px;
}
</style>
</head>
<body> <div class="c1"> <h3>hello world</h3> </div> <hr>
<button>add</button> <script src="jquery-3.1.1.js"></script>
<script>
$("button").click(function () {
// 创建标签 var $img=$("<img>");
//$img.attr("src","egon.jpg");
$img.attr({"src":"egon.jpg","width":100,"height":100});
// $(".c1").append($img) //$img.appendTo($(".c1")) // $(".c1").prepend($img) // $(".c1").after($img) // 替换 // $(".c1 h3").replaceWith($img) // 删除 //$("h3").remove() // $(".c1").empty() // var c=$(".c1").clone();
// $(".c1").after(c) }) </script>
</body>
</html>

5、动画效果

1)、显示隐藏

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-2.1.4.min.js"></script>
<script> $(document).ready(function() {
$("#hide").click(function () {
$("p").hide(1000);
});
$("#show").click(function () {
$("p").show(1000);
}); //用于切换被选元素的 hide() 与 show() 方法。
$("#toggle").click(function () {
$("p").toggle();
});
}) </script>
<link type="text/css" rel="stylesheet" href="style.css">
</head>
<body> <p>hello</p>
<button id="hide">隐藏</button>
<button id="show">显示</button>
<button id="toggle">切换</button> </body>
</html>

2)、滑动

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(){
$("#slideDown").click(function(){
$("#content").slideDown(1000);
});
$("#slideUp").click(function(){
$("#content").slideUp(1000);
});
$("#slideToggle").click(function(){
$("#content").slideToggle(1000);
})
});
</script>
<style> #content{
text-align: center;
background-color: lightblue;
border:solid 1px red;
display: none;
padding: 50px;
}
</style>
</head>
<body> <div id="slideDown">出现</div>
<div id="slideUp">隐藏</div>
<div id="slideToggle">toggle</div> <div id="content">helloworld</div> </body>
</html>

3)、淡入淡出

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-2.1.4.min.js"></script>
<script>
$(document).ready(function(){
$("#in").click(function(){
$("#id1").fadeIn(1000); });
$("#out").click(function(){
$("#id1").fadeOut(1000); });
$("#toggle").click(function(){
$("#id1").fadeToggle(1000); });
$("#fadeto").click(function(){
$("#id1").fadeTo(1000,0.4); });
}); </script> </head>
<body>
<button id="in">fadein</button>
<button id="out">fadeout</button>
<button id="toggle">fadetoggle</button>
<button id="fadeto">fadeto</button> <div id="id1" style="display:none; width: 80px;height: 80px;background-color: blueviolet"></div> </body>
</html>

4)、回调函数

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="jquery-2.1.4.min.js"></script> </head>
<body>
<button>hide</button>
<p>helloworld helloworld helloworld</p> <script>
$("button").click(function(){
$("p").hide(1000,function(){
alert($(this).html())
}) })
</script>
</body>
</html>

6、CSS操作

1)、CSS位置操作

        $("").offset([coordinates])
$("").position()
$("").scrollTop([val])
$("").scrollLeft([val])

示例1:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.test1{
width: 200px;
height: 200px;
background-color: wheat;
}
</style>
</head>
<body> <h1>this is offset</h1>
<div class="test1"></div>
<p></p>
<button>change</button>
</body>
<script src="jquery-3.1.1.js"></script>
<script>
var $offset=$(".test1").offset();
var lefts=$offset.left;
var tops=$offset.top; $("p").text("Top:"+tops+" Left:"+lefts);
$("button").click(function(){ $(".test1").offset({left:200,top:400})
})
</script>
</html>

示例2:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
}
.box1{
width: 200px;
height: 200px;
background-color: rebeccapurple;
}
.box2{
width: 200px;
height: 200px;
background-color: darkcyan;
}
.parent_box{
position: relative;
}
</style>
</head>
<body> <div class="box1"></div>
<div class="parent_box">
<div class="box2"></div>
</div>
<p></p> <script src="jquery-3.1.1.js"></script>
<script>
var $position=$(".box2").position();
var $left=$position.left;
var $top=$position.top; $("p").text("TOP:"+$top+"LEFT"+$left)
</script>
</body>
</html>

示例3:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title> <style>
body{
margin: 0;
}
.returnTop{
height: 60px;
width: 100px;
background-color: peru;
position: fixed;
right: 0;
bottom: 0;
color: white;
line-height: 60px;
text-align: center;
}
.div1{
background-color: wheat;
font-size: 5px;
overflow: auto;
width: 500px;
height: 200px;
}
.div2{
background-color: darkgrey;
height: 2400px;
} .hide{
display: none;
}
</style>
</head>
<body>
<div class="div1 div">
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
<h1>hello</h1>
</div>
<div class="div2 div"></div>
<div class="returnTop hide">返回顶部</div> <script src="jquery-3.1.1.js"></script>
<script>
$(window).scroll(function(){
var current=$(window).scrollTop();
console.log(current);
if (current>100){ $(".returnTop").removeClass("hide")
}
else {
$(".returnTop").addClass("hide")
}
}); $(".returnTop").click(function(){
$(window).scrollTop(0)
}); </script>
</body>
</html>

2)、尺寸操作

        $("").height([val|fn])
$("").width([val|fn])
$("").innerHeight()
$("").innerWidth()
$("").outerHeight([soptions])
$("").outerWidth([options])

示例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
*{
margin: 0;
}
.box1{
width: 200px;
height: 200px;
background-color: wheat;
padding: 50px;
border: 50px solid rebeccapurple;
margin: 50px;
} </style>
</head>
<body> <div class="box1">
DIVDIDVIDIV
</div> <p></p> <script src="jquery-3.1.1.js"></script>
<script>
var $height=$(".box1").height();
var $innerHeight=$(".box1").innerHeight();
var $outerHeight=$(".box1").outerHeight();
var $margin=$(".box1").outerHeight(true); $("p").text($height+"---"+$innerHeight+"-----"+$outerHeight+"-------"+$margin)
</script>
</body>
</html>

五、python 之Django

详细地址:http://www.cnblogs.com/fanglingen/articles/7773417.html

最新文章

  1. elasticsearch curl operation
  2. BeanUtils.copyProperties() 用法
  3. adv联系题
  4. 要让div中的float不会自动显示到下一行来?
  5. ndk编译protobuf库
  6. Hello WPF!
  7. Android启动过程以及各个镜像的关系
  8. 数据挖掘10大算法(1)——PageRank
  9. javaweb学习总结十三(dom4j方式对XML文档进行解析以及Xpath的使用)
  10. iOS应用性能调优的25个建议和技巧【转】
  11. RequireJs 深入理解
  12. Java基础概念1
  13. Windows中根据端口定位持有者程序
  14. 微信浏览器的页面在PC端访问
  15. bat执行python脚本,执行多条命令
  16. PythonStudy——三种字符串 Three strings
  17. python-面向对象-05_面向对象封装案例 II
  18. 理解 Redis(4) - 关于 string 的更多命令(SETEX, SETNX, INCR, DECR, MSET...)
  19. 微信授权(Net Mvc)
  20. 《DSP using MATLAB》Problem 5.12

热门文章

  1. JDK8 parallelStream性能测试
  2. spring-第十五篇之AOP面向切面编程之AspectJ框架简单应用
  3. LeetCode103. 二叉树的锯齿形层次遍历
  4. vue使用canvas生成海报图
  5. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述
  6. iOS App中 使用 OpenSSL 库
  7. centos7卸载YUM后重装过程 -bash: yum: command not found / -bash: yum: 未找到命令
  8. 【记录】解决windows中nginx明明退出了,为什么还能反向代理?CMD强制杀死进程命令
  9. linux创建相关待同步目录
  10. 11.SUSE Linux服务器系统网卡配置重启问题