JavaScript 获取dom外联样式

以前都是用jquery获取,后来写了个组件遇到这个问题,才发现这里面大有文章!

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>获取dom外链样式</title>
    <style>
        .div{font:14px/22px arial;color:#666;border:10px solid #ddd;}
    </style>
</head>
<body>
<div id="div" class="div" style="background:#f2f2f2;"></div>
<script>
    var doc = document,
        div = doc.getElementById(‘div‘);

    function getCurrentStyle(node) {
        var style = null;
        if(window.getComputedStyle) {
            style = window.getComputedStyle(node, null);
            //chrome、firefox、ie9(含)+
            console.log(‘globalEventContext‘);
        }else{
            style = node.currentStyle;
            //ie7、ie8
            console.log(‘currentStyel‘);
        }
        return style;
    }
    console.log(getCurrentStyle(div).borderLeftWidth); //10px
    console.log(getCurrentStyle(div).backgroundColor); //rgb(242, 242, 242) 

</script>
</body>
</html>

getCurrentStyle方法会返回dom的所有样式集合,试着输出了一下这个集合(想要什么样式值可以按实际输出的键值取),发现在不同浏览器下有些细微差别,比如没给dom设置border:

ie7

谷歌:

所以有时候取出来的值还是要做些处理,比如要获得元素的边框宽度,就需要针对浏览器差异处理下getCurrentStyle[dom].borderTopWidth的值

时间: 2024-10-22 18:52:18

JavaScript 获取dom外联样式的相关文章

JavaScript获取DOM节点HTML元素CSS样式

JavaScript获取DOM节点HTML元素CSS样式技术 maybe yes 发表于2015-01-10 18:07 原文链接 : http://blog.lmlphp.com/archives/59  来自 : LMLPHP后院 如何使用 JavaScript 获取某个 DOM 节点下 HTML 元素的 CSS 样式值?使用过 JQuery 的童鞋一定都非常的熟悉,Jquery 提供了非常强大的 CSS 方法,可以很方便的设置和获取元素的 style 属性. 某些情况下,我们不能使用 JQ

Javascript 获取dom的宽度 随笔一

javascript 中 offsetWidth 获得的并不是 真实的宽度 不等于 style.width ;offetWidth 实际上获得的是物体的盒模型尺寸. 包括 border padding 等尺寸.obj.style.width 只能获得行间样式宽度,不能获得样式表中的样式中的宽度 获取不在行间宽度的方法 function getStyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; /*仅支持IE*

第一百一十六节,JavaScript,DOM操作样式

JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检测当前浏览器支持CSS能力的级别. DOM1级实现了最基本的文档处理,DOM2和DOM3在这个基础上增加了更多的交互能力,这里我们主要探讨CSS,DOM2增加了CSS编程访问方式和改变CSS样式信息. DOM一致性检测 功能 版本号 说明 Core 1.0.2.0.3.0 基本的DOM,用于表现文档

javascript 获取内联样式

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1

原生javascript获取dom元素简单介绍

原生javascript获取dom元素简单介绍: 使用jQuery可以各种方式获取元素,比如id选择器,类选择器,元素选择器等等,非常的方便. 下面就介绍一下如何利用原生的js实现获取dom元素的功能. 一.通过id获取元素: 最方便的那就是使用document.getElementById()函数. 具体可以参阅document.getElementById()一章节. 二.通过标签获取元素: 使用document.getElementsByTagName()函数. 具体可以参阅documen

JavaScript 使用DOM操纵样式表

一 操作表格 <table>标签是HTML中结构最为复杂的一个,我们可以通过DOM来创建生成它,或者HTMLDOM来操作它; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 使用DOM来创建表格; var table = document.createElement('table'); table.border = 1; table.width = 300; var caption = document.cre

JavaScript获取非行间样式/定义样式

html节点的样式分为以下几种 (1)浏览器默认样式 (2)引用样式(引用外部css文件的样式.style标签内定义的样式) 引用外部css样式:<link rel="stylesheet" href="css/style.css" type="text/css"> style标签内:<style> width:100px; </style> (3)行间样式(节点style属性定义的样式)比如:<div

Vue获取DOM元素样式 &amp;&amp; 样式更改

在 vue 中用 document 获取 dom 节点进行节点样式更改的时候有可能会出现 'style' is not definde的错误,这时候可以在 mounted 里用 $refs 来获取样式,并进行更改: <template> <div style="display: block;" ref="abc"> <!-- ... --> </div> </template> <script>

javascript获取dom的下一个节点方法

需求说明: 获取当前节点左节点或者右节点(兄弟节点): css: <style type="text/css"> a:focus { outline: none; } .panel { background: #69C7F7; height: 220px; display: none; } .slide { margin: 0; padding: 0; border-top: solid 4px #F27613; } .btn-slide { background: #F2