1

所以,我正在尝试制作一个“选项卡菜单”,如下所示: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 函数运行良好,我得到了想要的类名(“contentEditListItem”+gupname)。为什么它保持不变?

4

1 回答 1

0

getElementsByClassName返回一个NodeList(种类Array),因此在其上设置一个属性不会影响它包含的元素,而只会影响它NodeList本身,它没有任何影响。

您可以设置第一个元素的类名,例如,如下所示:

y[0].className = "contentEditListItemActive";

或者,如果您希望所有元素的类名都更改,您可以遍历NodeList

for(var i = 0; i < y.length; i++) {
    y[i].className = "contentEditListItemActive";
}
于 2011-08-17T09:03:24.713 回答