有人在这里提问如何将一个对象的css样式复制到另一个对象中。通常被接受的答案是:
var p = document.getElementById("your_p_id");
var div = document.createElement("div");
div.innerHTML = "your div content";
div.style.cssText = document.defaultView.getComputedStyle(p, "").cssText;
然而,我的情况有点不同。我有一个脚本,创建一个
span
来代替一个 select
标签,然后隐藏该 select
。这样做可以更容易地进行 CSS 样式设置,因为我可以更容易地设置 span
,相对于一个固定的 select
标签。当我使用
cssText
,将应用于 select
上的任何样式复制到 span
上时,它最终看起来像一个 select
标签。由于所有内置样式也被应用于 span
而不仅仅是用户输入,那么我必须覆盖这些数十个 CSS 属性,这违背了一开始使用 span
标签的初衷。是否有一种方法只复制用户提供的样式而不是用于设置元素样式的整个样式表呢?
到目前为止,我已经能够通过从 select 到 span 传输 class 和 id 来传输应用的样式,但我的挑战在于获取直接应用于
select
标签上的样式(即在样式/样式表中,它读取:select {blah : bloh;}
)。