【JS-DOM】 html特性和DOM属性的区分 与使用

Attributes and properties

如果标签是 <body id=“page”>,那么 DOM 对象就会有 body.id=“page”

特性—属性映射并不是一一对应的

1.dom属性

  • 创建新属性
  • 添加新的方法
  • 修改内建属性的原型(prototype)

2.html特性

  • 解析:标准特性 非标准特性
  • 标准特性 元素之间可见性
  • 访问非标准特性
elem.hasAttribute(name) — 检查特性是否存在。
elem.getAttribute(name) — 获取这个特性值。
elem.setAttribute(name, value) — 设置这个特性值。
elem.removeAttribute(name) — 移除这个特性。
elem.attributes //读取所有特性:属于内建 Attr 类的对象的集合,具有 name 和 value 属性。
  • html特征:1.大小写不敏感 2.值总是字符串类型

总结一句 特性是写在html的,有标准和非标准

标准的会被自动翻译成DOM的属性

非标准的必须通过特殊的方法来访问

3.属性-特性同步

  • 例外 例如 input.value 只能从特性同步到属性,反过来则不行

4.DOM属性多类型

5.非标准特性

功能

  • 1.将自定义的数据从 HTML 传递到 JavaScript,或者用于为 JavaScript “标记” HTML 元素。
<!-- 标记这个 div 以在这显示 "name" -->
<div show-info="name"></div>
<!-- 标记这个 div 以在这显示 "age" -->
<div show-info="age"></div>

<script>
  // 这段代码找到带有标记的元素,并显示需要的内容
  let user = {
    name: "Pete",
    age: 25
  };

  for(let div of document.querySelectorAll('[show-info]')) {
    // 在字段中插入相应的信息
    let field = div.getAttribute('show-info');
    div.innerHTML = user[field]; // 首先 "name" 变为 Pete,然后 "age" 变为 25
  }
</script>
  • 2.配合css做样式 状态 变化 场景:订单状态颜色变化
<style>
  /* 样式依赖于自定义特性 "order-state" */
  .order[order-state="new"] {
    color: green;
  }

  .order[order-state="pending"] {
    color: blue;
  }

  .order[order-state="canceled"] {
    color: red;
  }
</style>

<div class="order" order-state="new">
  A new order.
</div>

<div class="order" order-state="pending">
  A pending order.
</div>

<div class="order" order-state="canceled">
  A canceled order.
</div>

这样子使用方便管理和更改

  • 避免被归为标准特性 :使用data-*
  • elem.dataset.* 获取到data-*特性
  • 驼峰式调用:像 data-order-state 这样的多词特性可以以驼峰式进行调用:dataset.orderState

部分引用:javsscript.info

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LiujiaHuan13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值