jquery html(深入浅出)

jQuery HTML 操作入门:让网页内容动起来

在网页开发中,HTML 是骨架,CSS 是皮肤,而 JavaScript 才是让网页“活”起来的灵魂。而 jQuery,正是让 JavaScript 操作 HTML 更加简单、高效的一把利器。尤其当你需要动态修改页面内容、添加新元素、或者响应用户交互时,jQuery 提供了一套简洁而强大的 API 来处理 HTML。

今天我们就来深入聊聊 jQuery 如何操作 HTML,无论是初学者还是已经接触过基础的开发者,都能从这篇文章中获得实用技巧和清晰认知。


什么是 jQuery HTML 操作?

简单来说,jQuery HTML 操作指的是使用 jQuery 方法来读取、修改、添加或删除网页中的 HTML 内容。它不是在源代码里改,而是在页面加载后,通过 JavaScript 动态改变 DOM(文档对象模型)中的内容。

你可以把 HTML 想象成一个“乐高积木房子”,而 jQuery 就是你的“遥控工具”。你不需要拆掉整个房子,就能用它把某一块积木换掉,或者加一扇新窗户。

比如:

  • html() 方法读取某个标签内的内容;
  • append() 在列表末尾添加新项目;
  • before() 在某个元素前插入一段新 HTML;
  • remove() 把不想要的元素彻底删除。

这些操作,用原生 JavaScript 也能实现,但代码会更长、更难读。而 jQuery 让这一切变得优雅简洁。


获取与设置 HTML 内容

使用 html() 方法读取或修改内容

html() 是最核心的方法之一,它既可以获取元素的 HTML 内容,也可以设置新内容。

// 获取某个 div 中的 HTML 内容
const content = $('#myDiv').html();

// 输出内容到控制台(调试用)
console.log(content); // 输出: <strong>欢迎访问</strong>

// 设置新的 HTML 内容(会覆盖原有内容)
$('#myDiv').html('<em>欢迎新用户</em>');

注释
第一行 $('#myDiv') 通过 ID 选择器选中页面中 id="myDiv" 的元素。
.html() 方法不带参数时,是“读取”操作;带参数时,是“设置”操作。
注意:html() 会解析 HTML 标签,比如 <strong> 会被渲染为粗体,而 text() 则不会。


对比 html()text():关键区别

很多人容易混淆 html()text(),这里做个对比:

方法 作用 示例 结果
html() 读取或设置原始 HTML 内容 $('#box').html('<b>加粗文字</b>') 页面显示为加粗文字
text() 读取或设置纯文本,忽略 HTML 标签 $('#box').text('<b>加粗文字</b>') 页面显示为 <b>加粗文字</b>(原样输出)

小贴士
如果你只想显示文字,不希望用户输入的 HTML 被解析(比如评论区),请用 text(),防止 XSS 攻击。


动态添加 HTML 元素

使用 append() 在末尾添加内容

append() 方法用于在指定元素的内部末尾添加新的 HTML 内容。

// 在 ul 列表中添加一个新 li 项
$('#myList').append('<li>新添加的项目</li>');

// 也可以传入 DOM 元素或 jQuery 对象
const newItem = $('<li>动态创建的项目</li>');
$('#myList').append(newItem);

注释
append() 会将新内容插入到目标元素的内部,作为最后一个子元素。
第二种方式使用 $('<li>...') 创建了一个新的 jQuery 对象,更灵活,适合复杂结构。


使用 prepend() 在开头添加内容

append() 相反,prepend() 是在元素内部的最前面插入内容。

// 在列表开头添加一条新记录
$('#myList').prepend('<li>最新消息</li>');

// 可以用来实现“消息队列”效果

形象比喻
append() 像在队列末尾加人,prepend() 像从队列前面插队。如果你要展示“最新消息”,用 prepend() 更符合直觉。


使用 before()after() 插入兄弟元素

这两个方法用于在某个元素的外部前后插入新内容。

// 在 div 之前插入一个段落
$('#myDiv').before('<p>这是插入前的内容</p>');

// 在 div 之后插入一个段落
$('#myDiv').after('<p>这是插入后的段落</p>');

注释
before()after() 插入的是兄弟节点,不会被包裹在目标元素内部。
适合用于插入提示信息、分隔线等。


删除与替换 HTML 内容

使用 remove() 彻底删除元素

当你想完全移除某个元素及其子元素时,remove() 是最直接的方式。

// 删除 id 为 'oldItem' 的元素
$('#oldItem').remove();

// 也可以用更简洁的方式:直接删除
$('.delete-btn').click(function() {
    $(this).closest('li').remove(); // 找到按钮所在的 li 并删除
});

注释
remove() 会从 DOM 中彻底移除元素,无法恢复。
closest('li') 是一个强大的方法,用于向上查找最近的 li 父元素,常用于按钮删除操作。


使用 replaceWith() 替换元素内容

如果你想用新内容替换旧元素,replaceWith() 更合适。

// 将原来的 div 替换为一个新的 div
$('#oldDiv').replaceWith('<div class="new">替换后的内容</div>');

// 或者用变量方式更灵活
const newElement = $('<div class="success">操作成功!</div>');
$('#status').replaceWith(newElement);

注释
replaceWith() 会把原元素完全替换,包括其属性和事件绑定。
适合在表单提交成功后,把“提交按钮”换成“成功提示”。


实际案例:动态任务列表管理器

我们来做一个小项目:一个可以添加、删除任务的待办清单。

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8" />
    <title>jQuery HTML 动态列表</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

    <h2>我的待办清单</h2>

    <input type="text" id="taskInput" placeholder="输入新任务..." />
    <button id="addBtn">添加任务</button>

    <ul id="taskList"></ul>

    <script>
        // 页面加载完成后执行
        $(document).ready(function() {
            // 点击添加按钮
            $('#addBtn').click(function() {
                const taskText = $('#taskInput').val().trim();

                // 检查输入是否为空
                if (taskText === '') {
                    alert('请输入任务内容!');
                    return;
                }

                // 创建新 li 元素,包含任务和删除按钮
                const newTask = `
                    <li>
                        ${taskText}
                        <button class="delete">删除</button>
                    </li>
                `;

                // 添加到列表末尾
                $('#taskList').append(newTask);

                // 清空输入框
                $('#taskInput').val('');
            });

            // 使用事件委托处理动态添加的删除按钮
            $('#taskList').on('click', '.delete', function() {
                $(this).closest('li').remove(); // 删除整行
            });
        });
    </script>

</body>
</html>

注释

  • $(document).ready() 确保 DOM 加载完成再执行脚本。
  • #taskInput.val() 获取输入框内容,.trim() 去除前后空格。
  • #taskList.on('click', '.delete', ...) 使用事件委托,因为删除按钮是动态添加的,原生 click() 无效。
  • $(this).closest('li') 找到当前按钮的父级 li,再删除。

高级技巧:构建可复用的 HTML 模板

当你要频繁添加相似结构的内容时,可以提前定义 HTML 模板。

// 定义一个任务模板函数
function createTaskHtml(text) {
    return `
        <li class="task-item">
            <span class="task-text">${text}</span>
            <button class="btn-delete">删除</button>
        </li>
    `;
}

// 使用模板添加任务
$('#taskList').append(createTaskHtml('学习 jQuery HTML'));

// 后续可扩展:添加修改、标记完成等功能

注释
把 HTML 拆成函数,便于维护和复用。
未来可以扩展成“完成任务”状态切换、双击编辑等高级功能。


总结:掌握 jQuery HTML 操作的核心

jQuery HTML 操作,本质上就是通过 JavaScript 精准控制页面内容的增删改查。它让原本繁琐的 DOM 操作变得直观、简洁。

  • html() 读写内容;
  • append()/prepend() 添加;
  • before()/after() 插入兄弟;
  • remove()/replaceWith() 删除或替换;
  • 用事件委托处理动态元素;
  • 用函数封装模板,提升可维护性。

无论你是做表单交互、动态列表,还是构建简单的前端应用,掌握这些技巧,都能让你的开发效率翻倍。而这些能力,正是“jQuery HTML”操作带来的核心价值。

下一次你写一个动态页面时,不妨试试用 jQuery 来操作 HTML —— 你会发现,原来网页可以这么“听话”。