使用$(this).attr(“class”)而不是多个类只获取一个特定的类

时间:2011-07-02 12:09:10

标签: jquery css class

我需要接收一个元素的类。另一个插件向元素插入第二个类,但我不想接收第二个类。到目前为止,我有:

target_text = $(this).attr("class");

目前返回:

some-class sfHover

我不想让班级“sfHover”。如何从变量中删除它?

(我想要获取的类是动态生成的,因此我无法监听特定的名称,只能使用它们。)

由于

4 个答案:

答案 0 :(得分:2)

var target_text = this.className.replace(/sfHover/, "");

答案 1 :(得分:2)

与Tomalak的回答类似:

你的jQuery语句返回一个字符串(jQuery attr()方法返回一个字符串),所以你应该用简单的javascript来操作它:

target_text = $(this).attr("class").replace('sfHover ','');

答案 2 :(得分:0)

如果你总是知道你的班级将是第一名,并且你总是知道它将有一个班级:

target_text = this.className.split(' ')[0]

当你做简单的DOM时,不需要jQuery方法。

注意如果项目没有类,上面会出错(我认为,className将为null)。可能更安全

target_text = this.className && this.className.split(' ')[0]

此外,根据您要执行的操作,您可能需要考虑重构代码以不在DOM中存储状态。尽量避免在DOM中存储信息,这很昂贵而且DOM很难看。

答案 3 :(得分:-1)

如果您只想要第一堂课,请尝试:$(this).attr("class").get(0)