jQuery介绍
jQuery 是一个JavaScript函数库。支持HTML元素选取和操作、CSS操作、JS特效与动画、DOM处理、Ajax等。导入jQuery就像导入一段外部js代码一样简单,可以使用MS或Google的CDN进行加载。
Jquery核心
"$"符号在 jQuery 中代表对jQuery 对象的引用, "jQuery"是核心对象.
通过该对象可以获取jQuery对象,调用jQuery提供的方法等。只有jQuery对象才能调用jQuery提供的方法。
<!--引入jquery文件 -->
<script type="text/javascript" src="js/jquery-3.4.1.js"></script>
<script type="text/javascript">
//获取元素对象
var div=$("#mydiv");
console.log(div);
var div2=jQuery("#mydiv");
console.log(div2);
</script>
jQuery选择器
1.基础选择器
选择器 | 名称 | 举例 |
id 选择器 | #id | $("#testDiv")选择 id 为 testDiv 的元素 |
元素名称选择器 | element | $(“div”)选择所有 div 元素 |
类选择器 | .class | $(".blue")选择所有 class=blue 的元素 |
选择所有元素 | * | $("*")选择页面所有元素 |
组合选择器 | selector1, selector2, selectorN | $("#testDiv,span,.blue")同时选中多个选择器匹配的元素 |
<div id="mydiv1">id选择器1<span>span中的内容</span></div>
<div id="mydiv1" class="blue">元素选择器</div>
<span class="blue">样式选择器</span>
<script type="text/javascript">
//id选择器 #id属性值 如果出现多个同名ID,只会获取第一个
var mydiv=$("#mydiv1")
console.log(mydiv);
//元素名称选择器 标签名/标签名
var span=$("span");
console.log(span);
//类选择器 .class属性值
var blue=$(".blue");
console.log(blue);
//选择所有元素 *
var eles=$("*");
console.log(eles);
//组合选择器
var elements=$("#mdiv1,.blue,span");
console.log(elements);//会去重
2.属性选择器:
CSS模式 | jQuery模式 | 描述 |
input[name] | $('input[name]') | 获取具有这个属性的DOM元素 |
input[name=XXX] | $('input[name=XXX]') | 获取具有属性且属性值为XXX的DOM元素 |
//([属性名])∗∗选择设置过指定属性名的元素∗∗([属性名=属性值])
//选择设置过指定属性名为指定属性值的元素
<div id="mydiv1" class="red">id选择器1<span>span中的内容</span></div>
<div id="mydiv1" class="blue">元素选择器</div>
<span class="blue">样式选择器</span>
<script type="text/javascript">
//选择设置过指定属性名的元素
var spans=$("[class]");
console.log(spans);
//选择设置过指定属性名为指定属性值的元素
var cls=$("[class='blue']");
console.log(cls);
</script>
3.层次选择器
选择器 | 名称 | 举例 |
后代选择器 | ancestor descendant | $("#parent div")选择 id 为 parent 的元素的所有 div 元素 |
子代选择器 | parent > child | $("#parent>div")选择 id 为 parent 的直接 div 子元素 |
相邻选择器 | prev + next | $(".blue + img")选择 css 类为 blue 的下一个 img 元素 |
同辈选择器 | prev ~ sibling | $(".blue ~ img")选择 css 类为 blue 的之后的 img 元素 |
<div id="grendfather">
<div id="parent">
爸爸
<div id="child">
<p>大儿子</p>
<p>小女儿</p>
</div>
</div>
<div id="uncle">
叔叔
<div id="child">
<p>大女儿</p>
<p>小儿子</p>
</div>
</div>
<div id="anut">
婶婶
</div>
</div>
<script type="text/javascript">
//后代选择器(空格)$("#parent div")选择id为parent的元素的所有div元素
var par=$("#grendfather div");
console.log(par);
//子代选择器 parent > child(大于号)$("#parent>div")选择id为parent的直接div子元素
var zidai=$("#grendfather > div");
console.log(zidai);
//相邻选择器 prev + next(加号) $(".blue + img")选择css类为blue的下一个img元素 (选择相邻的下一个指定元素)
var xl=$("#parent + div");
console.log(xl);
//同辈选择器 prev ~ sibling(波浪号)$(".blue ~ img")选择css类为blue的之后的img元素
var tp=$("#parent ~ div");
console.log(tp);
</script>
4.表单选择器
Forms | 名称 | 举例 |
表单选择器 | :input | 查找所有的 input 元素:$(":input");注意:会匹配所有的 input、 textarea、select 和 button 元素。 |
文本框选择器 | :text | 查找所有文本框:$(":text") |
密码框选择器 | :password | 查找所有密码框:$(":password") |
单选按钮选择器 | :radio | 查找所有单选按钮:$(":radio") |
复选框选择器 | :checkbox | 查找所有复选框:$(":checkbox") |
提交按钮选择器 | :submit | 查找所有提交按钮:$(":submit") |
图像域选择器 | :image | 查找所有图像域:$(":image") |
重置按钮选择器 | :reset | 查找所有重置按钮:$(":reset") |
按钮选择器 | :button | 查找所有按钮:$(":button") |
文件域选择器 | :file | 查找所有文件域:$(":file") |
<form id='myform' name="myform" method="post">
<input type="hidden" name="uno" value="9999" disabled="disabled"/>
姓名:<input type="text" id="uname" name="uname" /><br />
密码:<input type="password" id="upwd" name="upwd" value="123456" /><br />
年龄:<input type="radio" name="uage" value="0" checked="checked"/>小屁孩
<input type="radio" name="uage" value="1"/>你懂得 <br />
爱好:<input type="checkbox" name="ufav" value="篮球"/>篮球
<input type="checkbox" name="ufav" value="爬床" checked="checked"/>爬床
<input type="checkbox" name="ufav" value="代码"/>代码<br />
来自:<select id="ufrom" name="ufrom">
<option value="-1" selected="selected">请选择</option>
<option value="0">北京</option>
<option value="1">上海</option>
</select><br />
简介:<textarea rows="10" cols="30" name="uintro"></textarea><br />
头像:<input type="file" /><br />
<input type="image" src="http://www.baidu.com/img/bd_logo1.png" width="20" height="20"/>
<button type="submit" onclick="return checkForm();">提交</button>
<button type="reset" >重置</button>
</form>
<script type="text/javascript">
//:input选择所有的表单元素,包括input标签、select标签、textarea标签及button标签
var inputs=$(":input");
console.log(inputs);
//元素选择器 input
var inpts=$("input");
console.log(inpts);
//:checkbox 选择所有的复选框
var checkbs=$(":checkbox");
console.log(checkbs);
//选择被选中的复选框
var ches=$(":checkbox:checked");
console.log(ches);
//:checked 选择所有被选中的元素(单选框、复选框、下拉框)
var checks=$(":checked");
console.log(checks);
//:selected 选择所有被选中的元素 (下拉框)
var seles=$(":selected");
console.log(seles);
// :eq(index) 匹配下标1的复选框
var ck=$(":checkbox:eq(1)");
console.log(ck);
// :gt(index) 匹配下标大于指定值的元素
var gts=$("[name='ufav']:gt(0)");
console.log(gts);
</script>
jQuery HTML DOM操作
1.获取内容和属性
方法 | 说明 |
text() | 返回所选元素的文本内容 |
html() | 返回所选元素的内容(包括HTML标签) |
val() | 返回表单字段的值 |
attr(params) | 用于获取属性值。对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。1.如果有指定相应的属性,返回指定属性值。2.如果没有指定相应的属性,返回值是空字符串。 |
prop(params) | 用于获取属性值。对于HTML元素自定义的DOM属性,在处理时,使用 attr 方法。1.如果有指定相应的属性,返回指定属性值。2.如果没有指定相应的属性,返回值是 undefined。 |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
alert($("#baidu").attr("href"));
});
});
</script>
</head>
<body>
<p><a href="http://www.baidu.com" id="baidu">百度</a></p>
<button>显示href属性的值</button>
</body>
</html>
2.操作元素的样式
方法 | 说明 |
attr(“class”) | 获取class属性的值,即样式名称 |
attr(“class”,”样式名”) | 修改class属性的值,修改样式 |
addClass(“样式名”) | 添加样式名称 |
css(“具体样式名”,“样式值”) | 添加具体的样式 (相似style属性的样式) |
removeClass(class) | 移除样式名称 |
<h3>css()方法设置元素样式</h3>
<div id="conBlue" class="blue larger">天蓝色</div>
<div id="conRed">大红色</div>
<div id="remove" class="blue larger">天蓝色</div>
<script type="text/javascript">
//attr("class") 获取class样式名
var className=$("#conBlue").attr("class");
console.log(className);
//attr("class","样式名") 设置class样式名 (会将原本的样式移除,设置新的样式)
$("#conRed").attr("class",className);
//addClass("样式名") 添加样式名
//(会保留的原有的样式;如果出现相同属性的样式,则以在style标签中后定义的样式名为准)
$("#conRed").addClass("red");
//设置具体的样式
$("#conRed").css("color","white");
//设置多个样式
$("#remove").css({"background":"pink","font-size":"14px"});
</script>
3.操作元素的值
方法 | 说明 |
html() | 获取元素的 html 内容 |
html(“html,内容”) | 获取元素的文本内容,不包含 html |
text(“text 内容”) | 设置元素的文本内容,不包含 html |
val() | 获取元素 value 值 |
val(‘值’) | 设定元素的 value 值 |
<h3><span>html()和text()方法设置元素内容</span></h3>
<div id="html"></div>
<div id="text"></div>
<input type="text" name="uname" value="oop" />
<script type="text/javascript">
//获取非表单元素 取值
var htmlCon=$("h3").html();
console.log(htmlCon);
var textCon=$("h3").text();
console.log(textCon);
//非表单元素 赋值
$("#html").html("hello");
$("#text").text("hello");
//添加内容
$("#html").html("<h2>hello</h2>");
$("#text").text("<h2>hello</h2>");
//表单元素:取值
var val=$("input[type='text']").val();
console.log(val);
//赋值
$("input[type=text]").val("哈哈哈");
4.创建元素和添加元素
1)创建元素
$(‘元素内容’)
$(‘this is a paragraph!!!’)
2)添加元素
方法 | 说明 |
prepend(content) | 在被选元素内部的开头插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。 |
$(content).prependTo(selector) | 把 content 元素或内容加入 selector 元素开头 |
append(content) | 在被选元素内部的结尾插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。 |
$(content).appendTo(selector) | 把 content 元素或内容插入 selector 元素内,默认是在尾部 |
before() | 在元素前插入指定的元素或内容:$(selector).before(content) |
after() | 在元素后插入指定的元素或内容:$(selector).after(content) |
<h3>prepend()方法前追加内容</h3>
<h3>prependTo()方法前追加内容</h3>
<h3>append()方法后追加内容</h3>
<h3>appendTo()方法后追加内容</h3>
<span class="red">男神</span>
<span class="blue">偶像</span>
<hr />
<div class="green">
<span>小鲜肉</span>
</div>
<script type="text/javascript">
//prepend(content) 在被选元素内部的开头插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
$(".green").prepend("<span>小奶狗</span>");
//$(content).prependTo(selector)把 content 元素或内容加入 selector 元素开头
$("<span>小狗</span>").prependTo($(".green"));
//将存在的元素追加到指定的位置
$(".green").prepend($(".red"));
//append(content)在被选元素内部的结尾插入元素或内容,被追加的 content 参数,可以是字符、HTML 元素标记。
$(".green").append("<span>小狐狸</span>");
//$(content).appendTo(selector) 把 content元素或内容插入selector 元素内,默认是在尾部
$("<span>老狐狸</span>").appendTo($(".green"));
//before() 在元素前插入指定的元素或内容:$(selector).before(content)
$((".blue")).before("<span class='pink'>女神</span>");
//after() 在元素后插入指定的元素或内容:$(selector).after(content)
$((".blue")).after("<span class='yellow'>歌手</span>");
</script>
5.删除元素
方法 | 说明 |
remove() | 删除所选元素或指定的子元素,包括整个标签和内容一起删。 |
empty() | 清空所选元素的内容 |
<h3>删除元素</h3>
<span class="green">jquery<a>删除</a></span>
<span class="blue">javase</span>
<span class="green">http协议</span>
<span class="blue">servlet</span>
<script type="text/javascript">
// remove()删除所选元素或指定的子元素,包括整个标签和内容一起删。
$(".blue").remove();
//empty() 清空所选元素的内容
$(".green").empty();
</script>
6.遍历元素
遍历元素 each() $(selector).each(function(index,element)) :遍历元素 参数
function 为遍历时的回调函数, index 为遍历元素的序列号,从 0 开始。
element是当前的元素,此时是dom元素。
<h3>遍历元素 each()</h3>
<span class="green">jquery</span>
<span class="green">javase</span>
<span class="green">http协议</span>
<span class="green">servlet</span>
<script type="text/javascript">
//获取全部span标签
$(".green").each(function(index,element){
console.log("index:"+index);
console.log(element);
});
$(".green").each(function(){
console.log(this);
console.log($(this));
});