我有一个问题。我有一堆大量使用多个 css 类的网页。
<div class="class1 class2 class3">foo</div>
不幸的是,我有一个“浏览器”(缺少更好的术语)无法以这种方式处理多个 css 类。
我可以用 multiple classes 识别所有元素但现在我需要创建合并它们的新类。第一次尝试是将所有样式内联到样式属性中,但这太慢了,而且不必要地使文档膨胀。
我现在要做的是找到一个具有多个类的元素。创建一个新的组合类,并用新创建的类替换元素类,以及具有相同类组合的任何其他元素。
关于如何最好地解决这个问题的任何想法。
最佳答案
遍历所有标签。将类名拆分为一个数组。对其进行排序以使其进入可预测的顺序。将字符串重新连接在一起。
$(document).ready(function() {
var classList = {};
$("*").each(function() {
var temp;
if (this.className) {
temp = this.className.split(" "); // split into array
temp.sort(); // put in predictable order
this.className = temp.join(""); // put class name back without spaces
classList[this.className] = true; // add to list
}
});
// classList object contains full list of all classNames used
});
仅供引用,您拥有一个支持 jQuery 但不支持多个类名的 CSS 样式的浏览器似乎真的很奇怪。您确实意识到您将不得不提供完全不同的样式表来处理连接的名称,对吗?而且,如果您可以更改样式表,我想知道为什么您不能更改 HTML。
关于javascript - 将 CSS 类与 jQuery/Javascript 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653380/