javascript 如何将一个 div 的背景应用到另一个 javascript

how to apply the background from one div to another, in javascript

我是 Javascript 的新手,但基本上我想做的是从一个 div 的 CSS 样式中获取背景,并将其应用到另一个 div。这是我尝试过的方法,但没有用。

NewDiv.style.background = OldDiv.style.background;

我知道我能做到:

NewDiv.style.innerHTML = OldDiv.style.inHTML;

但我似乎无法对 CSS 背景而不是 html 做类似的事情。我正在尝试仅使用 javascript 而没有 Jquery

这应该可以解决问题:

var element1 = document.getElementById("element1Id");
var element2 = document.getElementById("element2Id");
element2.style.background = document.defaultView.getComputedStyle(element1).background;

如果您只想要背景样式的某个部分,而不是一次全部,您可以使用以下任何选项而不是 "background."

  • 背景色
  • 背景图片
  • 背景重复
  • 背景附件
  • 背景位置

可以找到有关背景样式的更多信息here

如果您对我为什么使用 "document.defaultView.getComputedStyle" 而不是 "window.getComputedStyle" 感到好奇,请随时查看 this Whosebug Q/A 来回答这个问题。

TL:DR; "document.defaultView.getComputedStyle" 适用于所有浏览器

您可以使用 someElement.style.backgroundColor:

var oldDiv = document.getElementById('old');
var newDiv = document.getElementById('new');

newDiv.style.backgroundColor = oldDiv.style.backgroundColor;

更多信息:Style backgroundColor Property