1、 $()
四种应用场景
引入 jQuery 库后,
$()
就是jQuery的工厂函数,$()
等于jQuery()
名称 | 备注 |
---|---|
$(选择器,上下文) | 主要用于HTML元素及属性的选择 |
$(JS原生对象) | 将js对象包装成一个jquery对象,从而可以直接调用jQuery中的方法 |
$(html文档) | 创建HTML语句(插入页面中) |
$(callback) | 当html文档加载完成之后立即调用这个函数(直接执行,避免污染全局) |
以下示例必须先引用jQuery,DOM结构如下:
<div class="box1">
<ul>
<li class="item">item1</li>
<li class="item">item2</li>
<li class="item">item3</li>
<li class="item">item4</li>
<li class="item">item5</li>
</ul>
</div>
<div class="box2">
<ul>
<li class="item">item1</li>
<li class="item">item2</li>
<li class="item">item3</li>
<li class="item">item4</li>
<li class="item">item5</li>
</ul>
</div>
1.1 $(选择器,上下文)
示例1
主要用于HTML元素及属性的选择
// 获取全部LI列表
var all_lis = $("li");
console.log(all_lis);
//每个LI点击后背景变为红色
all_lis.click(function(){$(this).css("background","red");});
示例2
// 获取全部box1的LI列表(点击弹窗显示内容)
var box1_lis = $("li", ".box1");
console.log(box1_lis);
box1_lis.click(function(){alert("你点击的是(.box1):" + $(this).text())});
// 获取全部box2的LI列表(点击弹窗显示内容)
var box2_lis = $("li", ".box2");
console.log(box2_lis);
box2_lis.click(function(){alert("你点击的是(.box2):" + $(this).text())});
1.2 $(JS原生对象)
示例
将js对象包装成一个jquery对象,从而可以直接调用jQuery中的方法
// 1、原生获取全部box1的LI列表
var lis = document.querySelectorAll('li');
console.log(lis);
// 2、将lis包装成jQuery对象并使用jQuery对象的css()方法
// 将所有LI字体改为红色
$(lis).css("color","red");
1.3 $(html文档)
示例
创建HTML语句(插入页面中)
// 将以下HTML语句插入到body中
$("<h3>Hello World</h3>").insertBefore("body");
1.4 $(callback)
示例
当html文档加载完成之后立即调用这个函数(直接执行,可避免污染全局)
$(function () {
$(".box1 ul > li").css({
color: "red",
"font-size": "28px",
});
});
2、 $
与 $()
的区别示例
$
等同于jQuery的别称$()
jQuery对象 类似function jQuery(){...}
2.1 $
等于 jQuery
// 1、$ = jQuery
($ === jQuery) ? jQuery("body").after("<li>> $ 等于 jQuery</li>") : jQuery("body").after("<li>$ 不等于 jQuery</li>");
输出结果:
$
等于jQuery
2.2 为 $
改个别名
var myJS = jQuery.noConflict();
myJS("body").after("<li>我也是jQuery的别名:myJS</li>")
输出结果: 我也是
jQuery
的别名:myJS
2.3 $()
jQuery对象示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<script src="jquery-3.5.1.js"></script>
</head>
<body>
<div class="box">
<ul>
<li class="item">item1</li>
<li class="item">item2</li>
<li class="item">item3</li>
<li class="item">item4</li>
<li class="item">item5</li>
</ul>
</div>
<script>
// 原生获取所有li
var JS_lis = document.querySelectorAll("li");
console.log(JS_lis); //(JS数组对象)
// jQuery获取所有li
var JQ_lis = $("li");
console.log(JQ_lis); //(jQuery对象)
// 给原生js套上jQuery马甲(就可以直接使用$.post(),$.get(),$.ajax()等jquery对象方法)
var jsTojq = $(JS_lis);
console.log(jsTojq); //(jQuery对象)
//鼠标移入字体红色
jsTojq.mousemove(function () {
$(this).css("color", "red");
});
//鼠标移出字体黑色
jsTojq.mouseout(function () {
$(this).css("color", "black");
});
</script>
</body>
</html>
3、attr()的常用操作 ( attr()
: 获取元素的属性)
- 3.1
attr(name)
: 获取属性的值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>attr的常用操作</title>
<script src="jquery-3.5.1.js"></script>
</head>
<body>
<button id="my_btn">我是按钮</button>
<input type="text" name="username" id="name" value="我是文本框" />
<img src="https://www.php.cn/static/images/index_php_item3.jpg" alt="PHP中文网" />
</body>
<script>
// attr(name): 获取属性的值
console.log($("button").attr("id")); //输出:my_btn
console.log($("input").attr("type")); //输出:text
console.log($("input").attr("name")); //输出:username
console.log($("input").attr("value")); //输出:我是文本框
console.log($("img").attr("src")); //输出:https://www.php.cn/static/images/index_php_item3.jpg
console.log($("img").attr("alt")); //输出:PHP中文网
</script>
</html>
- 3.2
attr(name,value)
: 设置属性的值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>attr的常用操作</title>
<script src="jquery-3.5.1.js"></script>
</head>
<body>
<input type="text" name="username" id="name" value="我是文本框" />
<img src="https://www.php.cn/static/images/index_php_item3.jpg" alt="PHP中文网" width="236"/>
</body>
<script>
// attr(name,value): 设置属性的值
// 鼠标移出改变value
$("input").mouseout(function(){
$(this).attr("value","你不写点什么吗?");
});
// 鼠标移入图片变大
$("img").mousemove(function(){
$(this).attr("width","400");
});
// attr()第二个参数支持回调(随机图片地址)
$("img").click(function(){
$(this).attr("src",function(){
var imgs = [
"https://img.php.cn/upload/course/000/000/003/5a13c87351613730.jpg",
"https://img.php.cn/upload/course/000/000/001/5f3de03eaf461163.png",
"https://img.php.cn/upload/course/000/000/003/5a699f1b2da2b398.jpg",
"https://img.php.cn/upload/course/000/000/001/5f155b2f296de744.png"
]
return imgs[Math.floor(Math.random()*3)];
});
});
</script>
</html>
总结
- 对jQuery的选择器和基本使用方法有了一定了解;
- attr(name): 获取属性的值
- attr(name,value): 设置属性的值