jquery删除类,无论位置如何

时间:2013-03-31 21:14:45

标签: javascript jquery class split

除了一个专门的人之外,还需要抓住任何身体类别。通常,我会使用.split(),但类的位置可能会改变。处理这个问题的最佳方法是什么?

HTML:

<body class="one two test"> || <body class="test three four">

JavaScript的:

bod.attr('class').split('test')[0] || bod.attr('class').split('test')[1]

谢谢!


更新:

我无法删除test类。停止低估合法的问题。

3 个答案:

答案 0 :(得分:3)

只需将其class属性更改为您想要保留的一个类。

bod.attr('class', 'test')

除非你还需要所有其他类的名字......

var otherClasses = bod.attr('class').split('test'); // either 1 or 2 element array (assuming your class name only shows up once)
bod.attr('class', 'test');

答案 1 :(得分:0)

您可以随时使用正则表达式:

var classes = document.body.className.replace(/\btest\b/g, '').split(/\s+/);

然后“classes”将是类值的数组,但它不会在列表中包含“test”。

答案 2 :(得分:0)

如果您正在尝试检索指定类以外的类列表,则应首先构建类的列表:

var classes = $('body').attr('class').split(' ');

...然后删除你不想要的那个:

classes.splice(classes.indexOf('test'), 1)

jsFiddle这里:http://jsfiddle.net/7bk78/