jQuery
- jQuery简介
- jQuery引入
- jQuery对象和DOM对象
- jQuery对象与DOM对象的相互转化
- 选择器
- 基本选择器
- 附加:Jquery对象的遍历方式
- 层次选择器
- 基本过滤选择器
- 属性选择器
- 表单选择器
- 表单对象属性
- this
jQuery简介
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。 jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
jQuery引入
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
jQuery对象和DOM对象
通过jquery的方式获取到的对象就叫jquery对象,比如 $("#d1") 通过js的方式获取到的对象叫DOM对象,比如: var obj = document.getElementById(“d1”);
为什么要划分不同的对象呢? jquery只能取调用jquery的属性以及方法 dom对象只能取调用js的属性以及方法
jQuery对象与DOM对象的相互转化
一 dom对象转化jquery对象 var obj = document.getElementById(“d1”); $(obj) jquery对象 二、jQuery对象转化为DOM对象 有以下两种方法: 方法一:利用数组下标的方式读取jQuery中的DOM对象
HTML代码:
1 <div>元素一</div>
2 <div>元素二</div>
3 <div>元素三</div>
javascript代码:
1 var $div =$('div'); //jQuery对象
2 var div = $div[0]; //转化为DOM对象
3 div.style.color = 'red' //操作DOM对象的属性
jQuery对象是一个数组结构,可以通过数组下标索引找到对应的div元素,通过返回的div对象调用它的style属性修改div元素的颜色。 方法二:通过jQuery自带的get()方法 jQuery对象自身提供一个.get()方法允许我们直接访问jQuery对象中相关的DOM节点,get方法中提供了一个元素的索引
1 var $div = $('div') //jQuery对象
2 var div = $div.get(0); //通过get方法,转化为DOM对象
3 div.style.color = 'red'; //操作DOM对象的属性
其实,jQuery源码中,get()方法就是利用数组下标的方式处理的,只不过jQuery把它包装程get方法更便于开发者使用。 html()–>等价于js中innerHTML text()–>等价于js中的innerText val()–>等价于js中的value
选择器
基本选择器
1.id选择器
<div id="d1"></div> $("#d1")
2.类选择器
<div class="c1"> $(".c1")
</div>
3.标签选择器 $("div")
<div>
</div>
4.混合选择器
多个选择器组合,选择器与选择器之前以逗号隔开
附加:Jquery对象的遍历方式
$obj.each(function(i,dom){
//i表示数组的下标 dom表示数组中的值-->是js对象
//$obj 要遍历的数组对象
});
或者
$.each(obj,function(i,dom){
//obj:要遍历的数组对象
});
层次选择器
1.后代选择器 selector1 selector2 匹配给定祖先元素下制定的后代标签
代码示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
$arr = $("form input");//
//输出$arr中name属性的值
$arr.each(function(i,dom){
console.log(dom.name);
});
});
</script>
</head>
<body>
<form>
<label>Name:</label>
<input name="name" />
<fieldset>
<label>Newsletter:</label>
<input name="newsletter" />
</fieldset>
</form>
<input name="none" />
</body>
</html>
2.parent > child 在给定的父元素下匹配所有的子元素 3.prev + next 匹配所有紧接在 prev 元素后的 next 元素 4.prev ~ siblings 匹配prev下边指定的sibling所有兄弟
基本过滤选择器
:first 匹配第一个标签对象 :last 匹配最后一个标签 :not(selector) 除了该标签剩下所有的标签 :even 匹配下标为偶数的标签对象 :odd 匹配下标为奇数的标签对象 :eq(index) 匹配的下标为index的标签对象 :gt(index) 匹配的大于下标为index的标签对象 :lt(index) 匹配的小于下标为index的标签对象
:fist与:last 案例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//点击按钮获取第一个列表项与最后一个列表项标签内容
$("#btn1").click(function(){
$firstObj = $("li:first");
console.log($firstObj.html());
$lastObj = $("li:last");
console.log($lastObj.html());
});
});
</script>
</head>
<body>
<ul>
<li>第一个列表项</li>
<li>第二个列表项</li>
<li id="d1">第三个列表项</li>
<li>第四个列表项</li>
</ul>
<input type="button" value="first|last" id="btn1"/>
</body>
</html>
:not(selector)的代码案例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//获取第1,2,4标签内容
$("#btn2").click(function(){
$arr = $("li:not(#d1)");
$arr.each(function(i,dom){
console.log($(dom).html());
});
});
});
</script>
</head>
<body>
<ul>
<li>第一个列表项</li>
<li>第二个列表项</li>
<li id="d1">第三个列表项</li>
<li>第四个列表项</li>
</ul>
<input type="button" value="not" id="btn2"/>
</body>
</html>
:even | :odd 代码示例
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//获取第1,3标签内容
$("#btn3").click(function(){
$arr = $("li:even");
$arr.each(function(i,dom){
console.log($(dom).html());
});
console.log("-----------------------")
//获取2,4标签内容
$arr1 = $("li:odd");
$arr1.each(function(i,dom){
console.log($(dom).html());
});
});
});
</script>
</head>
<body>
<ul>
<li>第一个列表项</li>
<li>第二个列表项</li>
<li id="d1">第三个列表项</li>
<li>第四个列表项</li>
</ul>
<input type="button" value="even|odd" id="btn3"/>
</body>
</html>
:eq的代码示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//获取第二个列表项
$("#btn4").click(function(){
$obj = $("li:eq(1)");
console.log($obj.html());
});
});
</script>
</head>
<body>
<ul>
<li>第一个列表项</li>
<li>第二个列表项</li>
<li id="d1">第三个列表项</li>
<li>第四个列表项</li>
</ul>
<input type="button" value="eq" id="btn4"/>
</body>
</html>
属性选择器
[attribute] 匹配具有该属性的标签对象 [attribute=value] 匹配具有该属性且值为指定的值的标签对象 [attribute*=value] 匹配标签中带有指定属性,且属性的值中包含xxx的标签对象
代码示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
$arr = $("div[id]");
$arr.each(function(i,dom){
console.log($(dom).html())
});
//
console.log("---------------");
$arr1 = $("input[name='newsletter']");
$arr1.each(function(i,dom){
console.log($(dom).val())
});
//获取name属性中包含cc的标签对象的value值。
$arr2 = $("[name*='cc']");
$arr2.each(function(i,dom){
console.log($(dom).val());
});
})
</script>
</head>
<body>
<div>
<p>Hello!</p>
</div>
<div id="test2">2</div>
<p id="d2">3</p>
<input type="checkbox" name="newsletter" value="Hot Fuzz" />
<input type="checkbox" name="newsletter" value="Cold Fusion" />
<input type="checkbox" name="accept" value="Evil Plans" />
</body>
</html>
表单选择器
:input 匹配所有 input, textarea, select 和 button 元素 :text 匹配文本框 :password 匹配密码框 :radio 匹配单选框 :checkbox 匹配多选框 :submit 匹配提交按钮 :image 匹配type为image的标签 :reset 匹配重置按钮 :button 匹配按钮 :file 匹配上传文件域 :hidden 匹配隐藏域
表单对象属性
:enabled 匹配可用标签 :disabled 匹配不可用(禁用)标签 :checked 匹配选中的标签 单选的复选框 :selected 匹配选中的标签 下拉选列表
this
this:当前标签对象–>js对象 $(this):当前标签对象–>jquery对象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(function(){
//点击按钮获取按钮的value值
$("#btn").click(function(){
console.log($(this).val());
})
});
</script>
</head>
<body>
<input type="button" value="点击一下" id="btn">
</body>
</html>