JavaScript сделать вкладки - PullRequest
       23

JavaScript сделать вкладки

1 голос
/ 17 августа 2011

Итак, я пытаюсь создать «меню вкладок», например: 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). Почему оно остается неизменным?

1 Ответ

0 голосов
/ 17 августа 2011

getElementsByClassName возвращает NodeList (вид Array), поэтому установка свойства для него не влияет на элементы , которые он содержит, а только на сам NodeList, который имеет без эффекта.

Вы можете установить имя класса первого элемента, например, так:

y[0].className = "contentEditListItemActive";

Или, если вы хотите, чтобы у всех элементов было изменено имя класса, вы можете выполнить итерации по NodeList:

for(var i = 0; i < y.length; i++) {
    y[i].className = "contentEditListItemActive";
}
...