页面加载时替换css类

时间:2014-04-15 08:15:06

标签: javascript jquery css

我想替换
div class =" rich fomat2 type-a"与
div class =“standard format1 type -a”

但我只能在加载时更改html,因为我使用的网站创建的软件会自动输出html。所以我使用了函数onload()。

我尝试过.attr()以及.getElementsByClassName()但是都没有用。 我哪里错了?有帮助吗?

    function onload() {$('div') .attr('rich format2 type-a', ' standard format1 type-a') ; } window.onload =onload; }            
window.onload = onload;

    function onload(){
var els = [].slice.apply(document.getElementsByClassName("rich format2 type-a"));
for (var i = 0; i < els.length; i++) {
els[i].className = els[i].className.replace(/ *\brich format2 type-a\b/g, "standard format1 type-a");
} window.onload = onload; 

4 个答案:

答案 0 :(得分:1)

你会有一个带有类的div

<div class="abc"></div>

在jQuery中,您可以执行以下操作

$('.abc').removeClass('abc').addClass('newClass');

让我们说你的div看起来像这样

<div class="a b c"></div>

这实际上意味着,你div包含3个不同的类。因此,必须这样称呼。

$('.a.b.c').removeClass('a').removeClass('b').removeClass('c').addClass('newClass');

希望它有所帮助。 纳斯

答案 1 :(得分:0)

1。使用.attr()

此功能用于获取/设置属性。

第一个字段是属性的名称,可选第二个是新值。

$("div").attr("class", "def");

请注意,该属性的名称是class,因此第一个字段的值为&#34; class&#34;。

由于您只想选择具有类.abc的div,请将其放在选择器中:

$("div.abc").attr("class", "def");

2。类语法

@adeneo指出的代码中存在的另一个主要错误是类中不能包含空格。

class="a b c"暗示&#34;使用类.a, .b, and .c&#34;

因此,.getElementsByClassName()失败。

如果是这样,您可以使用组合的类选择器:

$("div.a.b.c").attr("class", "def");

答案 2 :(得分:0)

检查jQuery toggleClass - https://api.jquery.com/toggleClass/

jQuery(function($){
  $("div")
      .toggleClass('a b c');
      .toggleClass('d e f');
});

答案 3 :(得分:0)

如果我理解你的问题,这是我的解决方案。感谢你的时间。

$('div').removeClass('a b c').addClass('d e f');

以下是 fiddle