我有一个外部样式表,它将某些样式应用于给定元素。我希望能够将这些样式(使用 JavaScript)完全移动到不同的元素,而无需事先了解正在应用的样式。
The CSS:
td { padding: 5px }
div { }
HTML:
<td>
<div>
Apply the TD styles to this DIV (instead of the TD).
</div>
</td>
JavaScript:
$(document).ready(function(){
$('tr').children('td').each(function(){
//move the td styles to div
});
});
我怎样才能实现这个目标?
Update:需要明确的是,我无法控制 CSS。我无法知道可以应用什么样式。我试图解决的问题是能够获取一个元素并复制其样式(可能未知)并将它们应用到不同的元素。
这是我想出的一个解决方案,它混合了 document.defaultView.getCompulatedStyle 和 jQuery 的 .css():
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" > </script>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<div id="test" style="background-color: #FF7300">
<p>Hi</p>
</div>
<a href="#" id="button">Apply styles</a>
<script>
$("#button").click(function() {
var element = document.getElementById("test");
$("#victim").css(document.defaultView.getComputedStyle(element, null));
});
</script>
<div id="victim">
<p>Hi again</p>
</div>
</body>
//style.css
#test {
border: 3px solid #000000;
}
它的作用是复制计算的样式对象,包括 style.css 和内联样式,并使用 jQuery 的 .css() 将其设置到另一个 div
我希望我没有误解这个问题,这就是您所需要的。
编辑:我忘记的是您要求“移动”样式而不是复制它。使用 jQuery 的 .removeClass() 和使用 .attr() 删除 style 属性从前一个 div 中删除样式非常简单,但您必须记住,如果有任何样式规则应用于元素的 ID,则有没有办法阻止它们被应用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)