如果有多个类,如何查找元素的特定类名?

时间:2012-01-29 08:38:39

标签: javascript jquery

我在页面上有一些DIV。每个类都有3个类:grid_#,push_#和pull_#,其中#是实际数字。

我需要单独替换每个类,即删除class ='grid_1'并将其替换为class ='grid_14'。

我正在使用选择列表来选择新类。我需要旧班级的名字,所以我可以删除它。

通过反复试验,我发现只要一个元素只有一个类,我就可以使用

var old = document.getElementById('elementId');
var old_class = old.className;

当我尝试从具有多个类的DIV获取类名时,我什么也得不到。不是未定义,不是对象,只是空白。我已尝试var old_class = old.className[0];等其他内容,但这给了我undefined

目前的计划是使用正则表达式将旧类名与可能类的列表相匹配,为我提供一个带有要删除的类名的var。作为javascript的新手,我确信有更好的方法来实现它。任何建议都非常受欢迎。

我刚刚开始这个项目,但如果有帮助,你可以找到它here

谢谢, 标记

编辑:更改了问题标题

1 个答案:

答案 0 :(得分:5)

如果元素有多个类,则需要使用split

var old = document.getElementById('elementId');
var old_class = old.className.split(' ')[0]; // first class

分裂的作用是通过拆分字符串(在本例中为类)创建一个数组,稍后您可以通过其索引访问该字符串,例如[0]作为第一类。

如果元素只有一个类,则只需使用className

var cls = old.className;