目录
1 jq概述
2 操作内容
2.1 jq与js的转换
3 事件绑定
4 Jq操作css样式
5 jq选择器
5.1 基本选择器
5.2 层级选择器
5.3? 基本筛选器
5.4 内容过滤选择器
5.5 可见性过滤选择器
5.6 属性选择器
5.7 子元素过滤选择器
5.8 表单过滤选择器
5.9 表单对象属性选择器?
6 对象遍历
7 jQuery操作DOM
7.1 操作内容
7.2 操作属性
7.3 操作样式
7.4 操作元素
8 事件绑定
8.8.1 点击事件
8.2 焦点事件?
8.3 鼠标事件
8.4 键盘事件
8.5 改变事件
8.6 表单事件
1 jq概述
????????jQuery是一款优秀的javascript的轻量级框架之一,封装了dom操作、事件绑定、Ajax等功能。jq是js的一个库。
????????当前页面如果想使用jq,需要引入jq的库,通script标签中的src属性进行即可
Jq与js页面加载的区别
js: 只能定义一次,如果定义多次,后面会将前面的进行给覆盖掉
jq: 可以定义多次
2 操作内容
alert($("#mydiv").html());//获取内容
$("#mydiv").html("aaa");//改变内容
2.1 jq与js的转换
????????jQuery虽然本质上也是js,但如果使用jQuery的属性和方法那么必须保证对象是jQuery对象而不是js对象。
????????通过js方式获取的是js对象,通过jQuery方式获取的是jQuery对象。
????????js转jq??
//$(js对象)
$(document.getElementById("mydiv")).html("js 转? jq");
????????jq转js
//jq对象[索引]
//jq对象.get(索引)
$("div")[0].innerHTML = "jq转成js方式一";
$("div").get(1).innerHTML = "jq转成js方式二"
3 事件绑定
方式一
$("button").click(function(){
???? $("p").hide();//p会被隐藏标签
???? $("p").hide("slow");//用600毫秒的时间将段落缓慢的隐藏
?});
方式二
$("#btn").on("click",function () {
??? alert("我被点击了。。")
?})
解绑
$("#btn2").click(function () {
??? $("#btn").off("click");//解绑指定单击事件
??? $("#btn").off();//解绑所有事件
});
4 Jq操作css样式
$("li").mouseover(function () {
???$(this).css("background","orange");
}).mouseout(function () {
????$(this).css("background","white");
});
5 jq选择器
5.1 基本选择器
$("html标签名")? ? ? ? ?标签选择器
$("#id的属性值")? ? ? ? ?id选择器
$(".class的属性值")? ? ? ? ?类选择器
$("选择器1,选择器2....")? ? ? ? ?组合选择器
$(function(){
// 标签选择器
console.info($("span").text());
// id选择器
console.info($("#dlrb").text());
// 类选择器
console.info($(".male").text());
// 组合选择器
console.info($("#dlrb,.hero").text());
});
5.2 层级选择器
$("A? B")? ? ? ? 后代选择器
$("A>B")? ? ? ? 父子选择器
$("A~B")? ? ? ? 兄弟选择器
$("A+B")? ? ? ? 跟班选择器
$(function(){
// 祖宗后代选择器
console.info($("div span").text());
// 父子选择器
console.info($("div>span").text());
// 兄弟选择器
console.info($("span~p").text());
// 跟班选择器
console.info($("span+p").text());
});
5.3? 基本筛选器
:first? ? ? ? 首行元素选择器
:last? ? ? ? 尾行元素选择器
:even? ? ? ? 偶数选择器
:odd? ? ? ? 奇数选择器
:gt()? ? ? ? 大于索引选择器
:lt()? ? ? ? 小于索引选择器
:eq()? ? ? ? 等于索引选择器
:header? ? ? ? 标题元素选择器
:animated? ? ? ? 正在执行动画效果选择器
:focus? ? ? ? 当前获得焦点元素
:root? ? ? ? 当前文档(html)根元素?
$(function(){
// 1.设置表格第一行,显示为红色
$("tr:first").css("background","red");
// 2.设置表格除第一行以外 显示为蓝色
$("tr:gt(0)").css("background","blue");
// 3.设置表格偶数行背景色 金色
$("tr:even").css("background","yellow");
// 4.设置表格奇数行背景色 绿色
$("tr:odd").css("background","green");
// 5.设置页面中所有标题 显示为灰色
$(":header").css("color","gray");
// 6.设置页面中正在执行动画效果div背景黄色
$("div").click(function(){
$(this).slideUp("slow");
$("div:animated").css("background","green");
});
// 7. 设置<html>背景颜色为金色
$(":root").css("background","yellow");
});
5.4 内容过滤选择器
:contains(text)? ? ? ? 包含给定文本的元素
:empty? ? ? ? 不包含子元素或文本的空元素
:has()? ? ? ? 含有选择器所匹配的元素的元素
:parent? ? ? ? 含有子元素或文本的元素
$(function(){
// 1.设置含有文本内容 ”公园” 的 div 的字体颜色为红色
$("div:contains(公园)").css("color","red");
// 2.设置没有子元素的div元素 文本内容 ”这是一个空DIV“
$("div:empty").text("这是一个空DIV").css("color","red");
// 3.设置包含p元素的div背景色为黄色
$("div:has(p)").css("background","yellow");
// 4.设置所有含有子元素span的字体为蓝色
$("span:parent").css("color","blue");
});
5.5 可见性过滤选择器
:hidden? ? ? ? 匹配所有不可见元素
:visible? ? ? ? 匹配所有可见元素
$(function(){
//1、选中from中不可见元素,添加class属性
//匹配所有display:none 或者 input中的 type:hidden 元素
$("input:hidden").attr("class","cla");
$("tr:hidden").addClass("cla");
//2.设置table所有 可见 tr 背景色 金色
$("tr:visible").css("background","yellow");
//3.设置table所有 隐藏tr 字体颜色为红色,显示出来
$("table tr:hidden").css("color","red").show();
});
5.6 属性选择器
$("A[属性值]")? ? ? ? ? ? ? ? 包含指定属性
$("A[属性名='值']")? ? ? ? 包含指定属性值
$("A[属性名!='值']")? ? ? ? 不包含指定属性值
$("A[属性名^='值']")? ? ? ? 以某元素开始的属性
$("A[属性名$='值']")? ? ? ? 以某元素结尾的属性
$("A[属性名*='值']")? ? ? ? 包含某元素的属性
$("A[属性名='值'] []...")? ? ? ? 包含多个属性
<script>
// 1.获取type 的input标签
$("input[type]").attr("id","inputid");
// 2.获取type=“password”的input标签
$("input[type='password']").attr("autocomplete","off");
// 3.获取属性名以xx开始
$("input[name^='n']").attr("abc","111");
// 4.获取属性名以xx结尾
$("p[class$='i']").css("color","red");
// 5.属性值中包含的属性
$("input[name*='us']").attr("abc","222");
// 6.获取 type ='text' 并且 name='nickname' 的标签
$("input[type='text'][name='nickname']").attr("abcd","333");
</script>
5.7 子元素过滤选择器
:first-child? ? ? ? 匹配所给选择器的第一个子元素
:last-child????????匹配所给选择器的最后第一个子元素
:nth-child? ? ? ? 匹配父元素下指定元素(n , odd , even)
:only-child????????如果某个元素是父元素中唯一的子元素,那将会被匹配
:first-of-type? ? ? ? 匹配其父元素下第一个此类型的孩子,等价于nth-of-type(1)
:last-of-type????????匹配其父元素下最后第一个此类型的孩子
<script>
// 1.在每个表格 下3的倍数行,字体颜色为红色 3 6 9 12
$("tr:nth-child(3n)").css("color","red");
// 2.每个表格 奇数行 背景色 黄色
$("tr:nth-child(odd)").css("background","yellow");
// 3.每个表格 偶数行 背景色 灰色
$("tr:nth-child(even)").css("background","gray");
// 4.每个tr 只有一个td的 字体为 蓝色
$("td:only-child").css("color","blue");
</script>
5.8 表单过滤选择器
:input????????匹配所有 input, textarea, select 和 button 元素
:text????????匹配所有的单行文本框
:password????????匹配所有密码框
:radio????????匹配所有单选按钮
:checkbox????????匹配所有复选框
:submit????????匹配所有提交按钮
:image????????匹配所有图像域
:reset????????匹配所有重置按钮
:button????????匹配所有按钮
:file????????匹配所有文件域
5.9 表单对象属性选择器?
:enabled????????匹配所有可用元素
:disabled????????匹配所有不可用元素
:checked????????匹配所有选中的被选中元素(复选框、单选框等,select中的option)
:selected????????匹配所有选中的option元素
<script>
// 1. 获取可用的输入框
$("input[type='text']:enabled").attr("id","77");
// 2. 获取不可用的输入框
$("input[type='text']:disabled").attr("id","88");
// 3. 获取选中的复选框
$("input[type='checkbox']:checked").val();
// 4. 获取选中的下列选择框
$("#edu option:selected").val();
</script>
6 对象遍历
jq对象.each(function(index,element){
})
//index:索引
//element:遍历到的元素
<script>
$("li").each(function(index,element){
// 遍历索引
console.info(index);
// 遍历元素
console.info(element);
// 遍历元素中的数据
console.info($(element).html());
console.info($(this).html());
})
</script>
7 jQuery操作DOM
7.1 操作内容
text() | 获取/设置元素的标签体纯文本内容 | html() | 获取/设置元素的标签体超文本内容 |
<div id="mydiv"><p>天王盖地虎1</p></div>
<script>
// 获取标签内容,包括中间的标签
console.info($("#mydiv").html());
// 修改标签中内容
$("#mydiv").html("宝塔镇河妖");
// 获取标签中纯文本内容
console.info($("#mydiv").text());
// 修改标签中内容
$("#mydiv").text("天王盖地虎")
// 拼接
$("#mydiv").html($("#mydiv").html()+"小鸡炖蘑菇");
</script>
7.2 操作属性
val() | 获取/设置元素的value属性值 | | attr() | 获取/设置元素的属性 | | removeAttr() | 删除属性 | | prop() | 获取/设置元素的属性 | | removeProp() | 删除属性 |
?attr与prop的区别
attr: 主要用于设置属性的值这一类的操作 prop: 主要用于判断属性是否存在或者操作布尔类型的操作
<script>
// 方式一:attr()
// 获取type属性
console.log($("#username").attr('type'));
// 新增class属性值
$("#username").attr("class","username");
// 删除value属性
$("#username").removeAttr("value");
// 方式二: val()
// 获取value属性值
console.log($("#hobby").val());
// 设置value属性值
$("#username").val('哈哈哈~~');
// 获取爱好的checked属性
// 方式一:attr 选中返回:checked, 末选中返回:undefined
console.log($("#hobby").attr('checked'));
// 方式二:prop() 如果该属性被选中返回true 末被选中返回false
console.log($("#hobby").prop('checked'));//返回属性的值的状态
$("#hobby").prop('checked',false);//设置属性
$("#username").prop("id","999");//也可以设置属性,注意不能自定义属性
</script>
7.3 操作样式
css() | 获取/设置样式 | addClass() | 添加class属性值 | removeClass() | 删除class属性值 | toggleClass() | 切换class属性,无添加,有删除 |
<style>
#p1 {
background-color: red;
}
.mp {
color: green;
}
.mpp {
background-color: lightgray;
}
</style>
<body>
<p id="p1">1. 设置一个css样式</p>
<p id="p2">2. 通过class设置样式</p>
<p id="p3">3.<button id="toggle">切换</button>class样式</p>
<script>
// 通过css设置属性
console.info($("#p1").css('background-color'));
$("#p1").css("background-color","gray");
// 通过class设置样式
$("#p2").addClass("mp mpp");
$("#p2").removeClass("mpp");
// 通过toggleClass切换css
$("#toggle").click(function(){
$("#p3").toggleClass("mpp");
});
</script>
</body>
7.4 操作元素
$(标签) | 创建一个标签 $('<li>xxx</li>') | prepend() | 在父标签中将子标签放在第一个位置 | append() | 在父标签中将子标签放在最后一个位置 | empty() | 清空子元素 | remove() | 删除自己 |
<ul id="star">
<li>古力娜扎</li>
<li>迪丽热巴</li>
</ul>
<script>
// 在前面添加
$("#star").prepend($("<li>马尔扎哈</li>"));
// 在后面添加
$("#star").append($("<li>萨瓦迪卡</li>"));
// 移除所有列表项
$("#star").empty();
// 删除无序列表
$("#star").remove();
</script>
8 事件绑定
jq对象.事件函数(function(){})
常见事件
8.8.1 点击事件
click() | 单击事件 | dblclick() | 双击事件 |
8.2 焦点事件?
8.3 鼠标事件
mousedown() | 鼠标按钮被按下 | mouseup() | 鼠标按键被松开 | mousemove() | 鼠标被移动 | mouseover() | 鼠标移到某元素之上 | mouseout() | 鼠标从某元素移开 |
8.4 键盘事件
keydown() | 某个键盘按键被按下 | keyup() | 某个键盘按键被松开 | keypress() | 某个键盘按键被按下并松开 |
8.5 改变事件
8.6 表单事件
|