javascript - 设置为多个值时获取单个框阴影的值

标签 javascript css

试图获得最近 question 的答案,我试图解析一个元素的盒子阴影,它被设置为

div {
    box-shadow: 0 0 0 5px green, 0 0 0 10px #ff0000,  0 0 0 15px blue;    
}

我希望得到那个字符串,对其进行拆分 (","),然后得到框阴影数组。 (有 3 个元素)

我的问题是我得到的字符串是

"rgb (0, 255, 0) 0 0 0 5px, rgb (255, 0, 0) 0 0 0 10px, rgb (0, 0, 255) 0 0 0 15px"

当然,当我 split 时,我会变得一团糟。

是否有一种更简单的方法来获取各个框阴影的值?

最佳答案

你可以尝试三个独立的语句

document.getElementById('the-element-id').style['boxShadow']

或者进行拆分,但使用“px,”作为分隔符并将“px”添加回数组中除最后一个值之外的所有值

var string ="rgb (0, 255, 0) 0 0 0 5px, rgb (255, 0, 0) 0 0 0 10px, rgb (0, 0, 255) 0 0 0 15px";

var array= string.split("px, ");
var length = array.length;
for (var i=0; i<length; i++) {
    if (i != length - 1){
        array[i] = array[i] + "px";
    }
    console.log(array[i]);
}

jsFiddle

[编辑]

我刚刚意识到,如果框阴影的最后一个值为 0(即 15px 0 0 0,rgb),这将不起作用

在这种情况下,这里的替代方案是拆分“, rgb”并将“rgb”添加回数组的所有值,除了第一个:

var string ="rgb (0, 255, 0) 0 0 0 5px, rgb (255, 0, 0) 0 0 0 10px, rgb (0, 0, 255) 0 0 0 15px";

var array= string.split(", rgb");
for (var i=0; i<array.length; i++) {
    if (i != 0 ){
        array[i] = "rgb" + array[i];
    }
    console.log(array[i]);
}

jsFiddle

关于javascript - 设置为多个值时获取单个框阴影的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18701194/

相关文章:

javascript - 当用户向下滚动时,我在 &lt;header&gt; 下方的 <div> 和 &lt;header&gt; 一起变得不可见(只有标题应该不可见)。为什么?

jquery - 滚动到一个 div

html - CSS链接到硬盘上的文件?

html - chrome 和 ie9 上的图像堆叠渲染不同

php - 添加箭头以链接到子项

javascript - Javascript/Jquery 使用哪种模板系统?

javascript - 将过渡悬停在 jquery 中

javascript - 单击 POI 时在谷歌地图上获取 placeId

javascript - 获取下载 URL 并使其可供其他组件使用

css - 使用 bootstrap less mixins 创建新类?