如果有多个类,如何找到元素的特定类名?
我在页面上有一些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的新手,我确信有更好的方法来做到这一点。 任何建议都非常受欢迎。
我刚刚开始这个项目,但你可以在这里找到它,如果它会有所帮助。
谢谢,马克
编辑:更改了问题的标题
如果element有多个类,则需要使用split
:
var old = document.getElementById('elementId'); var old_class = old.className.split(' ')[0]; // first class
分裂的作用是它通过拆分字符串(在本例中为类)创建一个数组,您可以稍后通过其索引访问它,例如[0]
作为第一类。
如果element只有一个类,则只需使用className
:
var cls = old.className;