JavaScript DOM操作:3种获取和设置元素属性的方法详解

Theo
Theo
发布时间:2026-10-15 | 4人浏览过
原创

在Web开发中,通过JavaScript动态修改HTML元素的特性(Attribute)是DOM操作的基础。本文将系统讲解如何通过对象属性、DOM方法及Attributes集合来读取和设置元素特性,并指出常见的兼容性问题。

准备条件

为了演示元素特性的获取与设置,我们首先需要构建一个包含不同HTML元素的测试结构。以下代码定义了一个容器 div,内部嵌套了一个图片 img 和一个链接 a,它们各自拥有独特的ID、Class、Title、Href等特性:

复制代码 代码如下:
&ltd;div id="myDiv" class="bd" title="我是div"> <img id="img1" /> <a id="myA" href = "http://www.baidu.com">百度</a> </div>

方法一:通过HTMLElement对象的属性访问

这是最常用的方式,直接通过JS对象提供的只读或可写属性来获取和修改元素特性。需要注意的是,由于某些名称(如 class)是JavaScript的关键字,因此对应属性名会有所变更。

第1步:使用getElementById获取元素引用

首先需要通过标准API定位目标节点:

复制代码 代码如下:
var div = document.getElementById("myDiv"); var img = document.getElementById("img1"); var a = document.getElementById("myA");

第2步:读取元素特性值

通过点号(.)语法可以直接读取属性值。若为保留关键字命名的特性,需使用对应的DOM属性名:

复制代码 代码如下:
//取得元素特性 alert(div.id); //输出: "myDiv" alert(div.className); //输出: "bd" (注意是className而非class) alert(div.title); //输出: "我是div" alert(a.href); //输出完整URL: http://www.baidu.com

第3步:修改元素特性

赋值操作可直接改变元素的展示效果或行为:

复制代码 代码如下:
//设置元素特性 div.id = "myDiv2"; // ID改为"myDiv2" div.className = "ft"; // Class改为"ft",若CSS存在.f类样式,界面立即刷新 div.title = "我是myDiv2"; // Tooltip提示文本更新 div.align = "center"; // 对齐方式设置 codeblock-img-placeholder-code-placeholder codeblock-img-1431618811416 codeblock-img-1431618811416 img.src ="images/img1.gif"; // 替换图片来源 a.innerHTML ="新浪"; // 链接文字从"百度"变为"新浪" a.href = "http://www.sina.com.cn"; // 跳转链接更新

关键点提示: HTML中的 class 对应 JS 属性 className;HTML中的 style 对应 JS 属性 style(返回CSSStyleDeclaration对象)。

方法二:通过 getAttribute / setAttribute 方法访问

除了对象属性,所有HTML元素都继承自Element接口,提供了通用的 getAttribute()、setAttribute() 和 removeAttribute() 方法。这些方法接收的参数必须与HTML源码中的属性名完全一致(大小写敏感),不会自动转换为JS的驼峰命名或别名。

第1步:调用通用方法

使用字符串形式明确指定操作的属性名称:

复制代码 代码如下:
var div = document.getElementById("myDiv"); //取得元素特性 alert(div.getAttribute("id")); //输出: "myDiv" alert(div.getAttribute("class")); //输出: "bd" (这里用原始HTML名称class) alert(div.getAttribute("title")); //输出: "我是div" alert(a.getAttribute("href")); //输出: http://www.baidu.com //设置元素特性 div.setAttribute("id","myDiv2"); div.setAttribute("class","ft"); //同样使用原始的class名 img.setAttribute("src","images/img1.gif"); //移除元素特性 div.removeAttribute("class"); //彻底删除class属性

注意事项:兼容性风险

虽然 getAttribute 和 setAttribute 是标准方法,但在处理部分特定属性(如 value、checked)时,早期IE版本表现可能异常。此外,旧版IE对自定义属性的支持也有限制。对于标准的DOM属性读写,优先推荐使用“方法一”。

方法三:通过 Attributes 集合访问

每个DOM元素都有一个 attributes 属性,它是一个NamedNodeMap集合,存储了该元素所有的特性节点。这种方法较为底层,适合需要批量读取或操作大量属性的场景。

第1步:操作Attributes集合

复制代码 代码如下:
var div = document.getElementById("myDiv"); // 读取某个具体的特性 alert(div.attributes["id"].nodeValue); // 输出当前id的值 // 修改特性值 // 注意:直接修改 nodeValue 即可,不需要触发重绘逻辑 // div.attributes["id"].nodeValue = "myDiv2"; // 移除特性(通过移除节点) div.attributes.removeNamedItem("class");

总结

在 JavaScript 中管理元素属性主要有三条路径:
1. 对象属性(推荐用于常规DOM属性,注意 className 等别名);
2. get/setAttribute 方法(匹配HTML原生名称,但需注意旧浏览器陷阱);
3. attributes 集合(适合深度定制的数据交互)。

开发者应根据实际使用的浏览器环境和功能需求选择合适的方案,确保代码的健壮性与兼容性。

以上就是JavaScript获取设置元素属性的详细内容,更多关于JavaScript操作元素属性的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表