博客
关于我
Js获取设置属性值以及jquery中的attr与prop区别
阅读量:319 次
发布时间:2019-03-04

本文共 1512 字,大约阅读时间需要 5 分钟。

HTML 行间属性与属性获取方法

在 HTML 开发中,行间属性 (inline styles) 和属性获取方法是开发者常用的功能。以下将详细介绍 setAttributegetAttribute 的使用方法,以及它们与 attr()prop() 的区别。


行间属性与 DOM 属性

在 HTML 中,行间属性可以直接写在标签内部,使用 style 属性来设置内联样式。例如:

Content

设置行间属性会在 DOM 元素的 attributes 属性中新增一个 Attr 对象。这个对象包含有属性名及其对应的值。通过 setAttribute 方法可以轻松地设置或修改行间属性。


getAttribute 方法

getAttribute 方法用于获取元素的行间属性值。它的使用方法如下:

元素.getAttribute('属性名')
  • 返回值:如果找到对应的属性,返回该属性的值;如果没有找到该属性,返回 null
  • 注意点getAttribute 仅能获取行间属性,不能获取 CSS 样式中的属性值。

示例

var div1 = document.getElementById('div1');div1.getAttribute('title'); // 返回 "divTitle"div1.getAttribute('title1'); // 返回 "divTitle1"

setAttribute 方法

setAttribute 方法用于设置或修改元素的行间属性。它的使用方法如下:

元素.setAttribute('属性名', 属性值)
  • 覆盖原有属性:如果元素已经有该属性,setAttribute 会覆盖原有的值。
  • 新增属性:可以通过该方法为元素新增自定义的行间属性。

示例

div1.setAttribute('data-source', '网站名称');

attr()prop() 的区别

在 jQuery 中,attr()prop() 方法看似相似,但它们的使用场景和内部实现有所不同。

1. 属性类型

  • attr():返回的是 HTML 标签上的属性值,属性值只能是字符串类型。
  • prop():返回的是 DOM 元素的属性值,可以是字符串、数字或布尔值。

2. 数据来源

  • attr():获取的是标签上的属性值,不能获取 DOM 元素的自定义属性。
  • prop():获取的是 DOM 元素的属性值,包括默认属性和通过 setAttribute 设置的属性。

3. 典型用途

  • attr():适用于获取标签上的属性值,例如 idclass 等。
  • prop():适用于获取 DOM 元素的属性值,例如 checkeddisabled 等布尔属性。

典型应用示例

1. 复选框的状态获取

var cb1 = document.getElementById('cb1');console.log(cb1.getAttribute('checked')); // 返回 "checked"

通过 getAttribute('checked') 可以获取复选框的状态,但需要注意的是:勾选或取消勾选复选框会修改 checked 属性,而默认的 defaultChecked 属性会在页面刷新后恢复。


总结

在开发过程中,合理使用 getAttributesetAttribute 方法可以方便地操作行间属性。对于布尔属性(如 checkedselecteddisabled 等),建议使用 prop() 方法来获取或设置其状态。

转载地址:http://hvaq.baihongyu.com/

你可能感兴趣的文章
NUMPY矢量化np.prod不能构造具有超过32个操作数的ufunc
查看>>
Numpy矩阵与通用函数
查看>>
numpy绘制热力图
查看>>
numpy转PIL 报错TypeError: Cannot handle this data type
查看>>
Numpy闯关100题,我闯了95关,你呢?
查看>>
nump模块
查看>>
Nutch + solr 这个配合不错哦
查看>>
NuttX 构建系统
查看>>
NutUI:京东风格的轻量级 Vue 组件库
查看>>
NutzCodeInsight 2.0.7 发布,为 nutz-sqltpl 提供友好的 ide 支持
查看>>
NutzWk 5.1.5 发布,Java 微服务分布式开发框架
查看>>
NUUO网络视频录像机 css_parser.php 任意文件读取漏洞复现
查看>>