Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery从元素中删除第n个类_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery从元素中删除第n个类

Javascript Jquery从元素中删除第n个类,javascript,jquery,html,Javascript,Jquery,Html,我想从元素中删除动态分配的类,但不知道该类的名称 例如,如果我有: 在这种情况下,未知类将始终位于位置3 如何使用Jquery实现这一点 更多信息: 你在这里做错了什么,课程的顺序应该不重要 但无论如何,你可以做到这一点 var parts = $('#myDiv').attr('class').split(' '); $('#myDiv').removeClass(parts[2]); 使用jquery执行此操作: var _classes = $('a#somelink').attr

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

例如,如果我有:

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

如何使用Jquery实现这一点

更多信息:


你在这里做错了什么,课程的顺序应该不重要

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

var parts = $('#myDiv').attr('class').split(' ');
$('#myDiv').removeClass(parts[2]);
使用jquery执行此操作:

var _classes = $('a#somelink').attr('class').split(" ");
然后,您可以循环通过该阵列并删除所需的阵列。

在一行中

$('#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 ...

尝试编写一个将接受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(' ');
    }
};
您始终可以强制执行要使用的条件。

为什么/如何不知道您自己正在分配的类的名称?我有一个函数,通过添加类
x
,然后添加
$('.x')。hide
,可以在
设置超时后隐藏div,该操作可以通过删除
x
来覆盖。同一个函数可以添加另一个随机类,因此您是否确实知道其他两个类?直接将className属性设置为您想要的值可能更容易:
document.getElementById(“myDiv”).className='foobar'这整个方法充其量看起来很脆弱,很容易出现错误。与其为此劫持类,为什么不使用适当的数据属性呢?例如,
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(' ');
    }
};