所以,我试图使一个"选项卡菜单",像这样:http://flowplayer.org/tools/tabs/index.html(但我不想用这个。)所以,我尝试使用url变量来设置活动菜单项。代码:
onload=function(){
//Check if editPage is set
if (gup("editPage")) {
gupname = gup("editPage");
var x = "contentEditListItem"+gupname;
var y = document.getElementsByClassName(x);
y.className = "contentEditListItemActive";
}
}
function gup( name )
{
name = name.replace(/[[]/,"\[").replace(/[]]/,"\]");
var regexS = "[\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
gup函数工作得很好,我得到了想要的类名("contentteditlisttitem"+gupname)。为什么它保持不变?
getElementsByClassName
返回一个NodeList
(类似于Array
),因此在其上设置属性不会影响其包含的元素,而只影响NodeList
本身,对其没有影响。
可以设置第一个元素的类名,例如:
y[0].className = "contentEditListItemActive";
或者,如果您希望更改所有元素的类名,您可以遍历NodeList
:
for(var i = 0; i < y.length; i++) {
y[i].className = "contentEditListItemActive";
}