You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将每个h2元素的id属性设置为其自身的文本内容

问题原因

document.querySelector("h2")只会匹配页面中第一个h2元素,你的代码相当于把第一个h2的固定文本值,批量赋值给了所有h2的id属性,最终所有h2的id都会和第一个h2的文本完全一致,无法实现按自身文本赋值的效果。

修复方法

jQuery的.attr()方法支持传入回调函数作为属性值参数:遍历每一个匹配到的元素时,回调函数会单独执行,函数的返回值就是当前元素对应属性的取值,函数内部的this指向当前正在处理的DOM元素。
修复后的核心代码:

$(function () {
    $('h2').attr('id', function () {
        // 读取当前h2的文本,去除首尾空白后作为id值
        return this.innerText.trim();
    });
});

注意事项

HTML标准中id属性不允许包含空格、特殊字符,如果h2的文本存在这类内容,可以额外做格式化处理,比如把连续空格替换为短横线,避免id不符合规范:

$(function () {
    $('h2').attr('id', function () {
        return this.innerText.trim().replace(/\s+/g, '-');
    });
});

以上代码运行后,示例中三个h2的id会分别被设置为Title-1、Title-2、Title-3,完全符合预期效果。

内容的提问来源于stack exchange,提问作者João Henrique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:54:23