您的位置:首页 > Web前端 > JavaScript

js中 aaa.style 和 aaa.getAttribute('style') 等价吗,有无区别?

2015-12-31 10:53 507 查看
著作权归作者所有。

商业转载请联系作者获得授权,非商业转载请注明出处。

作者:alaki

链接:https://www.zhihu.com/question/38750336/answer/78416508

来源:知乎

有区别

首先区分property和attribute,两个翻译成中文都可以作为属性,但是在实际上是有区别的。

在html标签里的自定义属性称为property

例如:<a href="/people/mi-si-14" data-tip="p$b$mi-si-14" data-original_title="alaki">alaki</a>

这个dom element有3个attribute:href、data-tips、data-original_title

而property是那些它被创建的时候就有的属性,例如attributes, autofocus, className, clientHeight。

特殊的是,假如

<a href="#" class="xx">alaki</a>

对于这个dom element来说,class不仅是attribute,同时它也是property,但是在dom.element中,只不过它叫className,这两个是绑定的。

简单来说,一些特殊的attribute将会转换为property,脚踏两条船,同样的style也是个脚踏两条船的家伙。

假如是内联样式,通过getAttribute('style')是可以获得的,但只能获取到内联样式部分,通过外部样式表或者内嵌样式都是无法获得的,返回值是字符串。

假如不是内联,那么getAttribute('style')返回null或者空字符串,返回哪一个取决于这个浏览器的实现
Element.getAttribute()。

上面两种情况,dom.style都将获得完整样式,返回值为对象CSSStyleDeclaration
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: