您的位置:首页 > Web前端 > JQuery

前端基础之jQuery

2018-01-05 22:12 399 查看

前端学习之 jQuery基础

我这人好奇心比较重,什么都想学。看到别人把网站写的那么漂亮,心里头痒痒啊,再加上老师布置了一个小作业,我就连夜把jQuery这个最流行的JavaScript库学习了一下,实现了一点小功能。

前端学习之 jQuery基础
1什么是jQuery
引入和导入对象

jQuery与DOM之间相互转换

2jQuery五种选择器

基本选择器

层级选择器

基本过滤选择器

属性选择器

表单选择器

3 利用jQuery完成表格隔行换色

4 用jQuery完成全选和全不选

5省市二级联动

1、什么是jQuery?

jQuery是一个快速、简洁的JavaScript框架,jQuery设计的宗旨是write Less,Do More“,即倡导写更少的代码,做更多的事情。

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

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

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

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

…………

总之,你知道这玩意非常diao就行了。

引入和导入对象

在学习JavaScript的时候,学过自定义库的导入,jQuery就是将需要的js库下载下来,在
html
中使
<script>
导入即可。在实际应用中,习惯将
<script>
标签编写在
<head>
标签体内。

<script type="text/javascript" src="jquery-1.8.3.js"></script>


需要说明的是在jQuery基本语法里,“jQuery==$”,区分大小写。

jQuery与DOM之间相互转换

jQuery与DOM之间可以相互转换,但是两者对象的函数不能混搭使用。jQuery对象只能使用自己的函数。

jQuery提供的
ready()
函数,用于页面成功加载后执行。与
windows.onload
函数一样。

<script>
window.onload = function(){
alert("shengshengshiwo");
}

//传统的方式页面加载会存在覆盖问题,加载比JQ慢(整个页面加载完毕<包括里面的其它内容,比如图片>)
window.onload = function(){
alert("shengshengshiwo");
}

//JQ的加载比JS加载要快!(当整个dom树结构绘制完毕就会加载)
jQuery(document).ready(function(){
alert("shengshengshiwo");
});

//JQ不存在覆盖问题,加载的时候是顺序执行
$(document).ready(function(){
alert("shensghensghiwo");
});

//简写方式
$(function(){
alert("shengshensghiwo");
});

</script>


emmmm……个人比较喜欢简写形式。

2、jQuery五种选择器

基本选择器

id 选择器,格式:
$("#id值")


标签选择器, 格式:
$("标签名")


类选择器, 格式:
$(".class类名")


*选择器,格式:
$("*")


element 选择器, 格式:
$("p")


<head>
<script>
$(function(){
$("#btn1").click(function(){
$("#one").css("background-color","green");
});

$("#btn2").click(function(){
$(".mini").css("background-color","green");
});

$("#btn3").click(function(){
$("div").css("background-color","green");
});

$("#btn4").click(function(){
$("*").css("background-color","green");
});

$("#btn5").click(function(){
$("#two,.mini").css("background-color","green");
});
});

</script>
</head>
<body>
<input type="button" id="btn1" value="选择为one的元素"/>
<input type="button" id="btn2" value="选择样式为mini的元素"/>
<input type="button" id="btn3" value="选择所有的div元素"/>
<input type="button" id="btn4" value="选择所有元素"/>
<input type="button" id="btn5" value="选择id为two并且样式为mini的元素"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>

<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>

<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
</body>


层级选择器

子选择器:,格式:
$(“parent>child”)


选择所有指定”parent”元素中指定的”child”的直接子元素。

后代选择器, 格式:
$(“ancestor descendant”)


选择给定祖先ancestor元素的所有后代元素,包括子元素,孙子元素等全部后代元素。

相邻兄弟选择器, 格式:
$(“prev + next”)


选择所有紧接在prev元素后的next元素。

一般兄弟选择器, 格式:
$(“prev ~ siblings”)


匹配“prev”元素之后的所有兄弟元素。具有相同的父元素,并匹配过滤出“siblings”选择器。

<head>
<script>
$(function(){
$("#btn1").click(function(){
$("body div").css("background-color","gold");
});

$("#btn2").click(function(){
$("body>div").css("background-color","gold");
});

$("#btn3").click(function(){
$("#two+div").css("background-color","gold");
});

$("#btn4").click(function(){
$("#one~div").css("background-color","gold");
});
});
</script>

</head>
<body>
<input type="button" id="btn1" value="选择body中的所有的div元素"/>
<input type="button" id="btn2" value="选择body中的第一级的孩子"/>
<input type="button" id="btn3" value="选择id为two的元素的下一个元素"/>
<input type="button" id="btn4" value="选择id为one的所有的兄弟元素"/>

<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>

<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>

<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>

<span id="four">

</span>
</body>


基本过滤选择器

选择器实例选取
:first$(“p:first”)第一个< p >元素
:last$(“p:last”)最后一个< p >元素
:even$(“p:even”)所有偶数< p >元素
:odd$(“p:odd”)所有奇数< P >元素
:eq(index)$(“ul li:eq(3)”)列表中的第四个元素(index 从 0 开始)
:gt(no)$(“ul li:gt(3)”)列出 index 大于 3 的元素
:lt(no)$(“ul li:lt(3)”)列出 index 小于 3 的元素
:not(selector)$(“input:not(:empty)”)所有不为空的 input 元素
:header$(“:header”)所有标题元素 < h1 > - < h6 >
:animated$(“:animated”)所有动画元素
下面对常用的四种进行代码演示。

<head>
<script>
$(function(){
$("#btn1").click(function(){
//body中第一个为div元素,返回单个元素。
$("body div:first").css("background-color","red");
});
$("#btn2").click(function(){
//body最后一个div元素,返回单个元素
$("body div:last").css("background-color","red");
});
$("#btn3").click(function(){
//body索引为奇数的元素,返回集合元素。
$("body div:odd").css("background-color","red");
});
$("#btn4").click(function(){
//body索引为偶数的元素,返回集合元素。
$("body div:even").css("background-color","red");
});
});
</script>
</head>
<body>
<input type="button" id="btn1" value="body中的第一个div元素"/>
<input type="button" id="btn2" value="body中的最后一个div元素"/>
<input type="button" id="btn3" value="选择body中的奇数的div"/>
<input type="button" id="btn4" value="选择body中的偶数的div"/>
<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>
<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>
<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>
<span id="four">
</span>
</body>


属性选择器

选择器实例选取
[attribute]$(“[href]”)所有带有 href 属性的元素
[attribute]$(“href=’#’”)所有带有href属性的元素
[attribute!=value]$(“[href!=’#’]”)所有 href 属性的值不等于 “#” 的元素
[attribute¥(换成英文状态下)=value ]$(“[href¥(换成英文状态下)=’.jpg’]”)所有 href 属性的值包含以 “.jpg” 结尾的元素
下面对常用的两种进行代码演示:

<head>
<script>
$(function(){
$("#btn1").click(function(){
$("div[id]").css("background-color","red");
});

$("#btn2").click(function(){
$("div[id='two']").css("background-color","red");
});

});
</script>
</head>
<body>
<input type="button" id="btn1" value="选择有id属性的div"/>
<input type="button" id="btn2" value="选择有id属性的值为two的div"/>

<hr/>
<div id="one">
<div class="mini">
111
</div>
</div>

<div id="two">
<div class="mini">
222
</div>
<div class="mini">
333
</div>
</div>

<div id="three">
<div class="mini">
444
</div>
<div class="mini">
555
</div>
<div class="mini">
666
</div>
</div>

<span id="four">

</span>
</body>


表单选择器

选择器实例选取
:input$(“:input”)所有 < input > 元素
:text$(“:text”)所有 type=”text” 的 < input > 元素
:password$(“:password”)所有 type=”password” 的 < input > 元素
:radio$(“:radio”)所有 type=”radio” 的 < input > 元素
:checkbox$(“:checkbox”)所有 type=”checkbox” 的 < input > 元素
:submit$(“:submit”)所有 type=”submit” 的 < input > 元素
:reset$(“:reset”)所有 type=”reset” 的 < input > 元素
:button$(“:button”)所有 type=”button” 的 < input > 元素
:image$(“:image”)所有 type=”image” 的 < input > 元素
:file$(“:file”)所有 type=”file” 的 < input > 元素
:enabled$(“:enabled”)所有激活的 input 元素
:disabled$(“:disabled”)所有禁用的 input 元素
:selected$(“:selected”)所有被选取的 input 元素
:checked$(“:checked”)所有被选中的 input 元素
放一些粗糙的例子:

<head>
<meta charset="UTF-8">
<title>表单选择器</title>
<link rel="stylesheet" href="../../css/style.css" />
<script type="text/javascript" src="../../js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#btn1").click(function(){
$(":input").css("background","green");
$("#btn1").click(function(){
$(":input").css("background","red");
})
});
})
</script>

</head>
<body>
<input type="button" id="btn1" value="选择所有input元素" />
<input type="button" id="btn2" value="选择文本框" />
<br/>
<form>
<input type="text" /><br />
<input type="checkbox" /><br />
<input type="radio" /><br />
<input type="image" /><br />
<input type="file" /><br />
<input type="submit" />
<input type="reset" /><br />
<input type="password" /><br />
<input type="button" /><br />
<select><option/></select><br />
<textarea></textarea><br />
<button></button>
</form>
</body>


3、 利用jQuery完成表格隔行换色

有了前面学习的基础,这一个小的任务算是很简单了。用一下基本过滤选择器,odd了……even了……啧啧啧,水到渠成。

首先先把表格写出来放进
<body>
标签里

<body>
<table border="1" width="500" height="50" align="center" id="tbl" id="tbl">
<thead>
<tr>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr >
<td>1</td>
<td>张张</td>
<td>22</td>
</tr>
<tr >
<td>2</td>
<td>刘刘</td>
<td>25</td>
</tr>
<tr >
<td>3</td>
<td>旺旺</td>
<td>27</td>
</tr>
<tr >
<td>4</td>
<td>田田</td>
<td>29</td>
</tr>
<tr >
<td>5</td>
<td>洋洋</td>
<td>30</td>
</tr>
<tr >
<td>6</td>
<td>乐乐</td>
<td>20</td>
</tr>
</tbody>
</table>
</body>


下面开始写jQuery函数来实现功能

<head>
<meta charset="UTF-8">
<title>使用jQuery完成表格隔行换色</title>
<link rel="stylesheet" href="css/style.css" />
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("tbody tr:odd").css("background-color","yellow");
$("tbody tr:even").css("background-color","green")
});
</script>
</head>


是不是超级简单,还记得在纯JavaScript的时代吗?是不是符合了那句话
write less, do more!!!


4、 用jQuery完成全选和全不选

首先分析一下,首先:表格最前列得有个
checkbox
,这样才能选对不对,然后,完成所需功能。

完成表格,把上面的那个复制下来加上一行就OK了。

<body>
<table border="1" width="500" height="50" align="center" id="tbl" id="tbl">
<thead>
<tr>
<th><input type="checkbox" id="select"></th>
<th>编号</th>
<th>姓名</th>
<th>年龄</th>
</tr>
</thead>
<tbody>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>1</td>
<td>张张</td>
<td>22</td>
</tr>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>2</td>
<td>刘刘</td>
<td>25</td>
</tr>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>3</td>
<td>旺旺</td>
<td>27</td>
</tr>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>4</td>
<td>田田</td>
<td>29</td>
</tr>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>5</td>
<td>洋洋</td>
<td>30</td>
</tr>
<tr >
<td><input type="checkbox" class="selectOne"/></td>
<td>6</td>
<td>乐乐</td>
<td>20</td>
</tr>
</tbody>
</table>
</body>


下面就是完成复选框的全选和选不选的功能了。通过学习了解到,
attr
prop
都可以达到相应功能,但是随着jQuery版本的升级,
attr
方法也会发生变化,所以我们还是用
prop
方法吧。

<head>
<meta charset="UTF-8">
<title>使用jQuery完成复选框的全选和全不选</title>
<script type="text/javascript" src="js/jquery-1.8.3.js" ></script>
<script>
$(function(){
$("#select").click(function(){
$("tbody input").prop("checked",this.checked);         });
});
</script>
</head>


两三行代码就解决了,是不是又在感叹!

5、省市二级联动

之前尝试过用JavaScript写这种二级联动,今天又学习了一下jQuery写。代码挺简洁,也很好入手。老样子,还是先分析一下思路。

1、 先获取用户选择的省份

var val = this.value;


2、 创建一个二维数组用来存储省和市

var cities = new Arrays(1);
cities[0] = new Arrays("郑州市","洛阳市","开封市","安阳市");
cities[1] = new Arrays("长沙市","郴州市","株洲市","岳阳市");


3、 遍历二维数组中的省份

$.each(cities,function(i,n))


4、 判断用户选择的省份与遍历的省份

if(val==i)


5、 遍历该省份下的所有城市

$.each(cities[i],function(j,m))


6、 创建城市文本节点

var textNode = document.createTextNode(m);


7、 创建option元素节点

var opEle = document.createElement("option");


8、 将城市文本节点添加到option元素节点中去

$(opEle).append(textNode);


9、将option元素节点追加到第二个下拉列表中去

$(opEle).appendTo($("#city"));


10、 清除第二个下拉列表的内容

$("#city").empty();


Ok了,这样就大功告成了。jQuery中的这几个函数,很好理解,简单易学。

附完整版代码:

<script>
$(function(){
//2.创建二维数组用于存储省份和城市
var cities = new Array(3);
cities[0] = new Array("武汉市","黄冈市","襄阳市","荆州市");
cities[1] = new Array("长沙市","郴州市","株洲市","岳阳市");
cities[2] = new Array("石家庄市","邯郸市","廊坊市","保定市");
cities[3] = new Array("郑州市","洛阳市","开封市","安阳市");

$("#province").change(function(){
//10.清除第二个下拉列表的内容
$("#city").empty();

//1.获取用户选择的省份
var val = this.value;
//alert(val);
//3.遍历二维数组中的省份
$.each(cities,function(i,n){
//alert(i+":"+n);
//4.判断用户选择的省份和遍历的省份
if(val==i){
//5.遍历该省份下的所有城市
$.each(cities[i], function(j,m) {
//alert(m);
//6.创建城市文本节点
var textNode = document.createTextNode(m);
//7.创建option元素节点
var opEle = document.createElement("option");
//8.将城市文本节点添加到option元素节点中去
$(opEle).append(textNode);
//9.将option元素节点追加到第二个下拉列表中去
$(opEle).appendTo($("#city"));
});
}
});
});
});
</script>
<td>
<select id="province">
<option>--请选择--</option>
<option value="0">湖北</option>
<option value="1">湖南</option>
<option value="2">河北</option>
<option value="3">河南</option>
</select>
<select id="city">
</select>
</td>


jQuery的入门学习就先这样吧。以后慢慢深入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: