javascript - 将 CSS 类与 jQuery/Javascript 合并

标签 javascript jquery html css

我有一个问题。我有一堆大量使用多个 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。

工作实现:http://jsfiddle.net/jfriend00/uPET7/

关于javascript - 将 CSS 类与 jQuery/Javascript 合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653380/

相关文章:

javascript - 自动完成显示 [object object] 列表项而不是值

javascript - Laravel:如何通过 jQuery 检查用户是否登录

php - 编辑 html 表行并使用 php 将其更新到 mysql 表中

javascript - 加载时 KO 5 秒延迟破坏了我的 UI

javascript - VS2017 Javascript 智能感知

javascript - 深度嵌套搜索

php - JQuery ajax 函数可以工作,但无法正确返回变量

php - Facebook Open Graph,未提供类型为 'og:title' 的必需属性 'string'

css - 如何删除CSS中div之间的空白区域?

jquery - 添加/删除表中的行并动态修改第一列单元格行跨度