Jquery从元素中删除第n个类

时间:2013-12-13 21:43:19

标签: javascript jquery html

我想从元素中删除动态分配的类,但不知道该类的名称。

例如,如果我有:

<div id="myDiv" class="foo bar unknown"></div>

在这种情况下,未知类将始终位于第3位。

如何使用Jquery实现这一目标?

更多信息:

function hideMyDiv(){
 var rnd=Date.now();

 $('#myDiv').addClass(rnd);

 setTimeout(function(){
 $('.'+rnd).hide();
  },10000);
}

function overRide(){
      $('#myDiv').3rdClass().remove();
  }

4 个答案:

答案 0 :(得分:2)

你这里做错了,课程顺序无关紧要。

但无论如何你可以做到这一点

var parts = $('#myDiv').attr('class').split(' ');
$('#myDiv').removeClass(parts[2]);

答案 1 :(得分:1)

尝试编写一个带有DOM元素的小帮助方法。

function removeClass(elem) {
    var c = elem.className.split(' '),
        cName;
    if (c && c.length > 0) {
        cName = c.splice(0, c.length - 1);
        elem.className = cName.join(' ');
    }
};

您始终可以强制执行您要使用的条件。 的 Check Fiddle

答案 2 :(得分:0)

使用jquery执行此操作:

var _classes = $('a#somelink').attr('class').split(" ");

然后你可以通过该数组循环并删除你想要的数组。

答案 3 :(得分:0)

在一行

$('#myDiv').removeClass($('#myDiv').attr('class').split(' ')[2]);

说明:

$('#myDiv')     //jQuery selector
.removeClass   //removed the named class
$('#myDiv')     //jQuery selector
.attr('class') //get the class attribute of the element
.split(' ')    //split it into an array, with the perpetrator being a blank space aka ' ' 
[2]            //get the 3rd item in the array, remember it counts from 0, aka 0, 1, 2, 3, 4 ...