使用 javascript/jquery 获取所有背景属性

Mik*_*ram 5 javascript css jquery

我有一个元素,如:

<div style="background-color: #ffffff; background-image: url(image.jpg);></div>
Run Code Online (Sandbox Code Playgroud)

使用 jquery 设置背景属性,如下所示:

$('div').css('background-color', '#ffffff');
Run Code Online (Sandbox Code Playgroud)

一旦设置了各种属性,我想将它们全部作为速记声明。我希望只要这样做:

var background = $('div').css('background');
Run Code Online (Sandbox Code Playgroud)

会起作用,但似乎不起作用。

有人对此有解决方案吗?

我唯一能想到的是进行字符串连接,例如:

var background = $('div').css('background-color') + ' ' + $('div').css('background-image');
Run Code Online (Sandbox Code Playgroud)

然而,这将非常混乱并且需要大量检查,因为并非总是设置所有背景变量,例如位置等。

任何想法如何做到这一点将不胜感激!

Mik*_*ram 1

鉴于似乎没有可靠的跨浏览器解决方案,我已执行以下操作来解决该问题。

我已经设置了一个像这样的对象:

var backgroundDefaults = {
    color: "#ffffff",
    image: "none",
    repeat: "repeat",
    position: "top left"
}
Run Code Online (Sandbox Code Playgroud)

当用户更改一个背景属性(例如背景颜色)时,我使用该对象来设置元素上的所有默认值。通过这样做,它可以确保始终设置所有可以更改的值,因此我可以使用以下方法可靠地将它们从元素中取出:

var background = $('div').css('background-color') + ' ' + $('div').css('background-image');
Run Code Online (Sandbox Code Playgroud)

正如原来的问题中提到的。