我在页面上有一些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。
谢谢, 标记
编辑:更改了问题标题
答案 0 :(得分:5)
如果元素有多个类,则需要使用split
:
var old = document.getElementById('elementId');
var old_class = old.className.split(' ')[0]; // first class
分裂的作用是通过拆分字符串(在本例中为类)创建一个数组,稍后您可以通过其索引访问该字符串,例如[0]
作为第一类。
如果元素只有一个类,则只需使用className
:
var cls = old.className;