jquery – 如何从一个元素移动所有计算的CSS样式,并使用JavaScript将其应用于其他元素?

我有一个外部样式表,将一些样式应用于给定的元素.我想能够将这些样式(使用 JavaScript)移动到不同的元素,而不需要先前了解应用的样式.

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
    });
});

我该如何实现?

更新:要清楚,我无法控制CSS.我无法知道应用什么样式.我想要解决的问题是能够使用元素并复制其样式(可能是未知的)并将其应用于不同的元素.

解决方法

这是我想出的一个解决方案,它混合了document.defaultView.getComputedStyle和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和inline样式,并使用jQuery的.css()将其设置为其他div,

我希望我没有误解这个问题,这就是你所需要的.

编辑:我忘记的是你要求“移动”风格,而不是复制它.使用jQuery的.removeClass()和使用.attr()来删除style属性,从前一个div中删除样式非常简单,但是您必须记住,如果要对元素的ID应用任何样式规则,那么没有办法阻止他们被应用.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...