jQuery
是对JavaScript的封装,极大的简化了JavaScript编程。
jQuery优点:兼容主流浏览器,代码编写更加简单
jQuery下载网站:https://code.jquery.com
推荐使用1.0版本的,因为有做浏览器兼容
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="jq/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
/// 原生js写法
window.onload = function(){
/// 当页面的标签和标签使用的资源数据都加载完成,onload事件才会被触发
var oDiv = document.getElementById("div1");
alert(oDiv);
};
/// $符号是jquery的象征
/// $ 本质就是函数,只不过这个函数名($)
/// ready 等待页面标签完成以后就执行ready事件,不会等待资源数据加载完成
/// 比如图片,ready是等界面的html标签加载完成就会触发,而不会等待图片的加载完成才触发
/// 而onload就会等待图片加载完成才触发
$(document).ready(function(){
/// 获取标签和css样式匹配标签的规则一样
/// 以后使用jquery,变量名都要以$符号开头
var $div = $("#div1");
alert($div);
});
/// jquery简写
$(function(){
var $div = $("#div1");
alert($div);
});
</script>
</head>
<body>
<div id="div1">hahaha</div>
</body>
</html>
jQuery选择器
规则和css样式一样
jquery选择器的种类
- 标签选择器
2.类选择器
3.id选择器
4.层级选择器
5.属性选择器
备注:可以使用length
属性来判断标签是否选择成功
,如果length大于0表示选择成功,否则选择失败
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
// 获取标签对象
var $p = $("p");
alert($p.length);
// 通过jquery设置标签的样式
$p.css({"color":"red"});
// 类选择器
var $div2 = $(".div2");
alert($div2.length);
// id选择器
var $div1 = $("#div1");
alert($div1.length);
// 层级选择器
var $div3 = $("div h1");
alert($div3.length);
// 属性选择器,先根据标签选择html标签,然后再根据属性值进行过滤标签
var $input1 = $("input[type=text]");
alert($input1.length);
});
</script>
</head>
<body>
<div id="div1">hahaha</div>
<div class="div2">xixixi</div>
<p>hello</p>
<p>hello</p>
<div>
<h1>haha</h1>
</div>
<input type="text">
<input type="button">
</body>
</html>
选择集过滤
选择集过滤就是在选中的集合标签里面,根据需要
过滤出来自己想要的标签
操作方式有两种:
has(选择器名称)
方法,表示选取包含指定选择器的标签
eq(索引)
方法,表示选取指定索引的标签
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
// 通过jquery选择器获取html的标签
var $divs = $("div");
// 获取包含指定选择器的父标签
$divs.has(".pname").css({
"background":"red"
});
// 根据下标选择指定的的标签
$divs.eq(1).css({
"background":"blue"
});
});
</script>
</head>
<body>
<div>
<p class="pname">hahah</p>
</div>
<div>
<input type="button" value="按钮">
</div>
</body>
</html>
选择集转移
选择集转移操作选择集转移就是以选择的标签为参照,然后获取转移后的标签
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
var $box1 = $("#box1");
// css 参数是一个js对象,js对象和python里面字典很类似
// 属性名和css里面的属性名保持一致
// 选择上一个同级别的标签
$box1.prev().css({"font-size":"30px","color":"red"});
// 选择上面所有的同级标签
$box1.prevAll().css({"font-size":"30px","color":"red"});
// 选择下一个同级标签
$box1.next().css({});
// 选择下面所有的同级标签
$box1.nextAll().css({});
// 选择同级的其他标签
$box1.siblings().css({});
// 选择父标签
$box1.parent().css({});
// 获取所有的子标签
$box1.children().css({"color":"green"});
// 查找指定的子标签
$box1.find('.sp1').css({"color":"yellow"});
});
</script>
</head>
<body>
<div>
<h3>三级标题</h3>
<p>hahah</p>
<div id="box1">我是一个<span>我是p标签1</span>div标签<span class="sp1">我是p标签2</span></div>
</div>
</body>
</html>
jquery获取标签的html内容
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
var $div1 = $("#div1");
// 获取标签的html内容:结果<p>hello</p>
var result = $div1.html();
// alert(result);
// 设置标签的html内容,之前的内容会清除
$div1.html("<span style='color:red'>你好</span>");
// 追加html的内容
$div1.append("<span style='color:green'>我是span</span>")
});
</script>
</head>
<body>
<div id="div1">
<p>hello</p>
</div>
</body>
</html>
获取和设置标签属性
使用
prop
方法,获取和设置标签属性
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
var $p1 = $("p");
var $txt = $("#txt1");
// 获取样式属性,比如:获取字体大小
var $px = $p1.css("font-size");
// 除了样式属性的相关操作使用css方法,其他属性的操作都是prop方法
var $name = $txt.prop("name");
alert($name);
// 设置属性
$txt.prop({"value":"liven","class":"tname"});
// 对于value属性的值设置和获取可以使用以下简单的写法
// 使用val获取value的值
alert($txt.val());
// 使用val设置value的值
$txt.val("老三");
});
</script>
</head>
<body>
<p>哈哈哈,我是一个段落标签</p>
<input type="text" name="username" id="txt1" value="李四">
</body>
</html>
jquery事件
常用的事件
click()
鼠标单击
blur()
元素失去焦点
focus()
元素获取焦点
mouseover()
鼠标进入元素范围内
mouseout()
鼠标离开元素范围内
ready()
DOM加载完成
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
// 获取ul里面的所有li标签对象
var $lis = $("ul li");
// 添加点击事件
$lis.click(function(){
// 获取当前点击的标签对象
// 原生js的写法
// this.style.color = "red";
// jquery的写法
$(this).css({
"color":"red"
});
// 获取点击标签的索引
var selectedIndex = $(this).index();
alert(selectedIndex);
});
// 获取文本框标签对象
var $txt = $("#txt");
// 获取按钮标签对象
var $btn = $("#btn");
// 按钮添加事件
$btn.click(function(){
// 获取文本框的内容
alert($txt.val())
});
// 文本框获取焦点事件触发事件
$txt.focus(function(){
// 当文本框获取焦点时,背景颜色变为红色
$(this).css({
"background":"red"
})
});
// 文本框失去焦点事件触发事件
$txt.blur(function(){
// 当文本框失去焦点时,背景颜色变为白色
$(this).css({
"background":"white"
})
});
// 获取div标签对象
var $div = $("div");
// 给div设置鼠标悬停(进入)事件
$div.mouseover(function(){
$(this).css({
"background":"green"
});
});
// 给div设置鼠标离开事件
$div.mouseout(function(){
$(this).css({
"background":"white"
});
});
});
</script>
</head>
<body>
<div>
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>栗子</li>
<input type="text" id="txt">
<input type="button" value="按钮" id="btn">
</ul>
</div>
</body>
</html>
jquery事件代理
事件冒泡
:子级标签的事件会往父级标签传递
,如果要取消事件冒泡,可以使用return false
命令
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
var $div = $("#div1");
var $btn = $("#btn");
// button添加点击事件,并且给他的父级标签div也添加点击事件
// 当btn点击事件触发的时候,也会触发父级div的事件,因为事件会向父级控件传递
$btn.click(function(){
alert("我是按钮");
// 取消事件冒泡,就是不让事件向父级控件传递
// 可以加一下这句
return false;
});
$div.click(function(){
alert("我是div");
});
});
</script>
</head>
<body>
<div id="div1">
<p>hahah</p>
<input type="button" value="按钮" id="btn">
</div>
</body>
</html>
事件代理
:就是利用事件冒泡的原理,把事件加到父级上,通过判断事件来源,执行相应的子元素操作,事件代理首先可以极大减少事件绑定次数,提高性能,其次可以让新加入的子元素也可以拥有相同的操作
<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签选择器css</title>
<!-- 导入jQuery js文件 -->
<script src="js/jquery-1.12.4.min.js"></script>
<!-- 使用jQuery -->
<script>
$(function(){
// 案例1:给每个li标签添加点击事件
// 第一步:获取父级标签ul
var $ul = $("div ul");
// 使用代理的方式,给每个li添加点击事件
// 第一个参数:代表代理的子标签,
// 第二个参数:代理事件的类型
// 第三个参数:事件触发的方法
$ul.delegate("li","click",function(){
$(this).css({
"background":"red"
});
});
// 扩展:可以代理不同子控件的事件
var $div = $("#box");
$div.delegate("#p1,#btn","click",function(){
alert('ok');
});
});
</script>
</head>
<body>
<div>
<ul>
<li>苹果</li>
<li>香蕉</li>
<li>栗子</li>
</ul>
</div>
<div id="box">
<p id="p1">hahahh</p>
<input type="button" value="按钮" id="btn">
</div>
</body>
</html>
网友评论