Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   insertBefore помогите плиз (https://javascript.ru/forum/events/47905-insertbefore-pomogite-pliz.html)

BorisBritva 11.06.2014 20:40

insertBefore помогите плиз
 
function rand( min, max ) { 
 
    if( max ) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    } else {
        return Math.floor(Math.random() * (min + 1));
    }
}



function clickKey(){

symbolList = document.getElementsByClassName('symbol');

for(i = 0; i < symbolList.length; i++)
{

   var rand = rand( 0, 9 );
   document.getElementById('symbolBoard').parentNode.insertBefore(symbolList[i], symbolList[rand]);

}


}


Нужно произвольно поменять местами элементы с классом - symbol
Что не так и как правильно.

Браузер опера 12.17

Erolast 11.06.2014 22:33

Если что-то не работает - всегда в первую очередь надо смотреть в консоль. Большинство ошибок там ясно видно, в том числе и конкретно твоя.

Дело в том, что ты определил переменную rand, которая естественно перекрывает функцию rand. При попытке затем присвоить ей значение идет попытка вызвать как функцию уже эту, новую переменную, ну и код прерывается с ошибкой "rand is not function".

BorisBritva 11.06.2014 22:45

Благодарю. Но это не помогает.

insertBefore вообще работает с уже существующими элементами?

Может тут применимо что ни будь иное?

BorisBritva 11.06.2014 22:48

Ой )) Благодарю за ответ. дело было как всегда в глазах. parentNode лишний )))


Часовой пояс GMT +3, время: 07:09.