Javascript 删除id或类,但保留样式

Javascript 删除id或类,但保留样式,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在克隆一个元素并删除id以避免重复。通常只有一个类。如果最终用户选择使用id并为其设置样式,我希望确保在克隆的元素上保留该样式。这是一个基本的例子 /*css*/ #unique { background: yellow; } .general { border: 1px solid blue; } /*html*/ <div id="container"> <div id="unique" class="general">hello</div&g

我正在克隆一个元素并删除id以避免重复。通常只有一个类。如果最终用户选择使用id并为其设置样式,我希望确保在克隆的元素上保留该样式。这是一个基本的例子

/*css*/

#unique {
  background: yellow;
}
.general {
  border: 1px solid blue;
}
/*html*/

<div id="container">
  <div id="unique" class="general">hello</div>
</div>
编辑:
链接副本提供了jQuery插件解决方案。它使用.getComputedStyle方法,该方法有效,但资源密集,因为它加载所有计算样式。我希望能找到一种方法,只识别最终用户可能应用于id的两种样式。

id
属性必须是唯一的,而不是类。因此,将所有CSS规则绑定到一个类,这样当您删除id时,样式将保持不变。在CSS中使用id选择器是一种不好的做法


然后,您可以仅为需要唯一的特定规则添加一个类,并使用
$(…).removeClass()从克隆对象中删除该类
函数。

的可能重复您不能创建一个具有这些样式的类并插入它吗?为什么不在克隆时删除id而不是重新选择它呢?@Rob应用程序已经使用类设置了样式。这样做的目的是确保应用程序按预期工作,即使最终用户决定在某些东西上添加id并以这种方式设置样式。因此,您要么需要阅读样式表并解析可能应用于元素的所有规则,要么必须适应计算时间。没有简单的答案。应用程序的样式是类。。。这个答案对问题的目的没有帮助,因为问题的目的是“通常只有一个类。如果最终用户选择使用id并设置其样式…”这样做的目的是确保即使最终用户没有遵循最佳实践,应用程序也能按预期工作。我看到的唯一其他方法是根据您的编辑使用
getComputedStyle
函数。很抱歉不能帮忙!
$(function() {
    $( ".general" ).clone().appendTo( "#container" ).removeAttr( "id" );
});