web前端疑问之属性与特性

本文只简单讲述属性与特性之间的差别与关系,并不讨论特性的3个操作函数,js的兼容性问题和特殊的特性:class,style,如果想要详细了解“特性与属性”的知识,可以看《JavaScript高级程序设计(第3版)》中第10章的10.1.3 Element类型,里面详细专业的解释了特性与属性,还有相关的兼容性问题。


本文的主要内容结构:

1. 什么是特性?什么是属性?

2.特性与属性的关系



1. 什么是特性?什么是属性?

用一个简单的例子来解释:

<div id='box'  title='this is a box'></div>

<script>

  var  box = document.getElementById('box');

         alert(box.id);    // box

         alert(box.title);   // this is a box

</script>

代码解释:

    html标签中,id,title就是特性;

   js中,box.id  , box.title 就是属性


2.特性与属性的关系

还是用一个简单的例子来解释:

<div id='box'  title='this is a box' aa=”aaaaa“></div>

<script>

  var  box = document.getElementById('box');

         alert(box.id);    // box

         alert(box.title);   // this is a box

         alert(box.aa);    // undefined

         alert(box.dir);   // ""

</script>

代码解释:

特性会以属性的形式添加到DOM对象中。DOM对象box有两个属性(不止两个):id,title,这两个属性会与box的特性同名,而且属性的值就是特性的值。为什么说是2个属性而不是3个属性呢?因为特性有”自定义特性“和”非自定义特性“之分,简单来说, 一个人的纹身,首饰这些东西,就是”自定义特性“,因为这些东西不是与生俱来的,是你自己决定的;而头发,皮肤就是”非自定义特性“,因为这些是与生俱来的。而上述说的特性会以属性的形式添加到DOM对象 针对的是”非自定义特性“,如上述代码,属性box.id,box.title,box.dir,就是div中对应的特性id title和dir,虽然,代码中没有显式声明dir,但是dir是html元素”与生俱来“的特性,所以DOM对象box中会有dir这个属性,而由于没有声明dir的值,所以默认值为空。而虽然div中声明了aa这个特性,但这个特性是”自定义特性“,所以不会出现在DOM对象box中,所以box.aa为undefined;

同理,在DOM对象div上自定义属性的话,元素div上不会出现对应的特性!








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值