jQuery 设置

jQuery 的设置(修改)与"捕获"恰好相反:text()、html()、val()、attr() 传入参数时,就从"读取"变成"写入",直接改写页面上元素的内容或属性。

本节沿用上节的 HTML:一个带加粗字的段落 <p id="p1">、一个输入框 <input id="ipt">、一个链接 <a id="a1">

text() 设置文本

text(新内容) 会覆盖元素的全部文本,且传入的 HTML 标签会被当作普通文字:

$("#p1").text("新的<b>文本</b>");
// 效果:段落显示为:新的<b>文本</b>,标签不会被解析

安全提示:展示用户输入的内容时优先用 text(),可防止 XSS 注入。

html() 设置 HTML

html(新内容) 会解析传入的 HTML 标签并渲染:

$("#p1").html("新的<b>加粗文本</b>");
// 效果:段落显示为:新的加粗文本("加粗"二字被加粗显示)

注意:html() 会把原内容整个替换掉,不只是追加。

text() 与 html() 写值对比

方法写入内容标签是否被解析用途
text()纯文本否,原样显示写入普通文字、用户输入
html()HTML 字符串是,渲染成元素写入带格式内容、动态模板

val() 设置表单值

val(值) 给表单元素赋值,常用于表单重置或编辑回填:

$("#ipt").val("填写后的新值");
// 效果:输入框中显示:填写后的新值

适用对象:input、select、textarea;对 select 传入要选中的 option 的 value 即可改变下拉框选中项。

attr() 设置属性值

attr(属性名, 属性值) 修改单个属性;也可传入对象一次设置多个属性:

$("#a1").attr("href", "https://example.com/page1");          // 改一个
$("#a1").attr({ "href": "https://example.com/page2", "title": "示例页面" });
// 效果:链接地址先改为 page1,又连同 title 一起改为 page2

回调函数写法

四个方法都支持传入函数:function(index, 原值),返回值作为新内容,便于批量加工:

$("li").text(function (i, oldText) {
    return (i + 1) + ". " + oldText; // 给每个 li 前加上序号
});
// 效果:三个 li 变成:1. 苹果 2. 香蕉 3. 橘子

小结

设置就是"写":text()/html() 改内容、val() 改表单值、attr() 改属性,还能用回调函数按原值批量生成新值。捕获与设置配对使用,即可实现"读旧值→算新值→写回"的完整流程。

笔记加载中…