获取jQuery
引入到HTML
CDN引入方式
<!-- 使用文大师CDN -->
<script src="https://030399.xyz/upload/CDN/jquery-3.7.0.min.js" defer></script>
<!-- 使用百度CDN -->
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<!-- 使用CDNJS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
jQuery基本语法
$(选择器).事件(执行代码)
示例:点击弹出提示
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>jQuery示例</title>
</head>
<body>
<a href="#" id="demo">点我</a>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$('#demo').click(function () {
alert("Hello jQuery!");
});
</script>
</body>
</html>
选择器类型
jQuery选择器语法与CSS选择器类似,主要包括以下类型:
| 类型 | 语法 | 说明 |
|---|---|---|
| 元素选择器 | $('p') |
选择所有<p>元素 |
| ID选择器 | $('#myElement') |
选择id为"myElement"的元素 |
| 类选择器 | $('.myClass') |
选择class为"myClass"的元素 |
| 属性选择器 | $('input[type="text"]') |
选择type属性为text的input |
| 后代选择器 | $('span a') |
选择span内的所有a元素 |
| 子元素选择器 | $('div > p') |
选择div的直接子元素p |
过滤选择器
$('li:first') // 选择第一个li
$('li:last') // 选择最后一个li
$('tr:even') // 选择偶数行
$('tr:odd') // 选择奇数行
$(':contains("Hello")') // 选择包含文本Hello的元素
表单选择器
$(':input') // 选择所有输入框
$('input[type="checkbox"]:checked') // 选择已勾选的复选框
DOM操作
1. 选择元素
$(selector) // 使用选择器选取元素
2. 获取和设置内容
$('p').text() // 获取纯文本
$('p').text('新文本') // 设置纯文本
$('p').html() // 获取HTML内容
$('p').html('<b>新内容</b>') // 设置HTML内容
$('input').val() // 获取表单值
3. 添加元素
$('#container').append('<p>添加到末尾</p>'); // 内部末尾添加
$('#container').prepend('<p>添加到开头</p>'); // 内部开头添加
$('#container').after('<p>添加到之后</p>'); // 外部之后添加
$('#container').before('<p>添加到之前</p>'); // 外部之前添加
4. 移除元素
$('#element').remove(); // 移除元素及其子元素
$('#element').empty(); // 清空子元素
5. 属性与样式操作
$('img').attr('src', 'image.jpg'); // 设置属性
$('img').removeAttr('alt'); // 移除属性
$('p').css('color', 'red'); // 设置样式
6. 类操作
$('p').addClass('highlight'); // 添加类
$('p').removeClass('highlight'); // 移除类
$('p').toggleClass('highlight'); // 切换类
7. 遍历DOM树
$('p').parent(); // 获取父元素
$('div').children(); // 获取所有直接子元素
$('div').find('p'); // 查找内部所有p元素
8. 显示与隐藏
$('p').hide(); // 隐藏元素
$('p').show(); // 显示元素
$('p').toggle(); // 切换显示状态
9. 事件绑定
$('#btn').on('click', function() {
alert('点击了!');
});
$('#btn').off('click'); // 解绑事件
DOM操作完整示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery DOM操作</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<div id="container">
<p>原始段落</p>
</div>
<button id="hideBtn">隐藏</button>
<button id="showBtn">显示</button>
<script>
$(document).ready(function() {
// 修改内容
$('p').text('修改后的文本');
// 添加元素
$('#container').append('<p>新添加的段落</p>');
// 修改样式和属性
$('p').css('color', 'blue').attr('class', 'highlight');
// 隐藏按钮
$('#hideBtn').click(function() {
$('p').hide();
});
// 显示按钮
$('#showBtn').click(function() {
$('p').show();
});
});
</script>
</body>
</html>
AJAX请求
基本GET请求
$.get('/api/data', function(response) {
console.log(response);
});
完整AJAX示例
服务端代码(Flask):
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/getinfo')
def getinfo():
return jsonify({
'cpuusage': 2.1,
'load': 0.0,
'memusage': 30.5
})
客户端页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AJAX数据获取</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<div id="data-container">
<p>加载中...</p>
</div>
<script>
$(document).ready(function() {
$.get('/getinfo', function(data) {
$('#data-container').html(`
<p>CPU使用率: ${data.cpuusage}%</p>
<p>负载: ${data.load}</p>
<p>内存使用: ${data.memusage}%</p>
`);
}).fail(function() {
$('#data-container').html('<p>获取数据失败</p>');
});
});
</script>
</body>
</html>
实时数据刷新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>实时数据刷新</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
<div id="data-container">
<p>加载中...</p>
</div>
<script>
function fetchData() {
$.get('/getinfo', function(data) {
$('#data-container').html(`
<p>CPU: ${data.cpuusage}%</p>
<p>Load: ${data.load}</p>
<p>Memory: ${data.memusage}%</p>
`);
}).fail(function() {
$('#data-container').html('<p>获取数据失败</p>');
});
}
// 页面加载时获取数据
fetchData();
// 每5秒刷新一次
setInterval(fetchData, 5000);
</script>
</body>
</html>