使用数据生成动态内容
结合数据属性与 jQuery 创建交互式组件,根据存储的数据更新用户界面,并构建灵活的内容展示。
使用数据生成动态内容 是 CoddyKit 上的免费 jQuery Academy 课时。 这是第 2 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 jQuery Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 jQuery Academy 课程共包含 3 节课。
使用数据创建动态内容
欢迎来到第 2 课!在上一课中,我们学习了如何使用 HTML5 数据属性存储和读取数据。
现在,我们将更进一步。我们会探索如何将这些属性与 jQuery 结合起来,在网页上动态生成和更新内容。这样可以让您的用户界面更具交互性和灵活性!
为什么需要动态内容
假设您有一个产品列表、用户资料列表或新闻文章列表。您不必将所有内容硬编码,而是可以使用 data-* 属性定义基本数据。
- 更新现有元素中的信息。
- 根据数据创建全新的元素。
- 使用数据控制用户界面行为(例如显示或隐藏)。
这种方式可以将内容数据与其呈现方式分离。
更新现有元素
我们先从更新内容开始。我们可以为元素添加 data-* 属性,然后使用 jQuery 读取这些数据,并填充页面的其他部分。
这对于显示所选项目的详细信息或更新状态消息非常有用。
代码:更新项目详情
请尝试点击按钮,看看一个元素中的数据属性如何更新另一个元素中的文本。
<!DOCTYPE html>
<html>
<head>
<title>Update Content</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<div id="productCard" data-product-name="CoddyKit Pro" data-product-price="29.99">
<p>Product: <span id="displayedName">[Name Here]</span></p>
<p>Price: <span id="displayedPrice">[Price Here]</span></p>
<button id="showDetailsBtn">Show Details</button>
</div>
<script>
$(document).ready(function() {
$('#showDetailsBtn').on('click', function() {
var name = $('#productCard').data('productName');
var price = $('#productCard').data('productPrice');
$('#displayedName').text(name);
$('#displayedPrice').text('$' + price);
});
});
</script>
</body>
</html>说明:更新内容
在这个示例中,#productCard div 包含 data-product-name 和 data-product-price。
- 点击按钮时,
.data('productName')和.data('productPrice')会读取这些值。 - 然后使用
.text()将这些值注入#displayedName和#displayedPricespan。
这展示了如何从一个元素读取数据,并更新另一个元素的内容。
创建新元素
除了更新内容之外,我们还可以使用数据属性生成全新的 HTML 元素。这对于列表、图库或动态表单非常强大。
您可以在数据属性中存储类似模板的数据或新元素的配置,然后使用 jQuery 构建这些元素,并将其插入 DOM。
代码:向列表添加项目
点击下方按钮,动态添加一个新的列表项。该列表项的内容来自按钮的数据属性。
<!DOCTYPE html>
<html>
<head>
<title>Create New Element</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
<ul id="myList">
<li>Existing Item 1</li>
</ul>
<button id="addBtn" data-new-item-text="Dynamic Item" data-new-item-value="101">
Add Dynamic Item
</button>
<script>
$(document).ready(function() {
$('#addBtn').on('click', function() {
var itemText = $(this).data('newItemText');
var itemValue = $(this).data('newItemValue');
var newItem = $('<li>').text(itemText + ' (ID: ' + itemValue + ')');
$('#myList').append(newItem);
});
});
</script>
</body>
</html>说明:创建元素
在这里,按钮 #addBtn 具有 data-new-item-text 和 data-new-item-value。
- 点击时,我们会读取这些值。
$('会创建一个新的列表项元素。- ')
.text()会使用组合后的数据填充该元素。- 最后,
$('#myList').append(newItem)会将这个新的添加到无序列表中。
这是构建动态列表或网格的基本模式!
使用数据创建交互式组件
数据属性不只适用于文本!它们还可以存储交互式组件的配置。例如,要切换哪个元素,或播放哪种动画。
这样可以将 JavaScript 逻辑与硬编码的 ID 或类名解耦,使代码更加模块化且易于复用。
问题:动态内容
请考虑以下 HTML 和 jQuery 代码:
<div id="infoBox" data-status="active"></div>
$('#infoBox').data('status', 'inactive');
这段代码运行后,使用 $('#infoBox').data('status') 读取时,data-status 属性的新值是什么?
总结:使用数据创建动态内容
做得很好!在本课中,您学习了如何利用数据属性创建真正动态的 Web 内容:
- 通过读取数据属性并注入其中的值,您可以更新现有元素。
- 您可以动态生成新的 HTML 元素,并使用其他元素中的数据填充它们。
- 这种方式将数据与呈现方式分离,使用户界面更加灵活且具有交互性。
现在,您已经可以构建更具适应性和吸引力的用户界面了!
常见问题解答
「使用数据生成动态内容」课时是免费的吗?
是的 — 「使用数据生成动态内容」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 jQuery Academy 课程的其余内容,请升级到 CoddyKit PRO。 jQuery Academy 课程共包含 3 节课。
「使用数据生成动态内容」这节课中我会学到什么?
结合数据属性与 jQuery 创建交互式组件,根据存储的数据更新用户界面,并构建灵活的内容展示。 你通过在浏览器中直接运行的动手代码来练习 jQuery Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 jQuery Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 jQuery Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 3 节。
「使用数据生成动态内容」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 jQuery Academy 课中编写并运行代码吗?
能。每节 jQuery Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 利用 HTML5 数据属性
- 使用数据生成动态内容
- 客户端模板集成基础