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

getElementsByClassNameNodeList(の種類)を返す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 に答える