идентификатор начинается сразу после числового литера

Я показываю пару видео на своем веб-сайте и генерирую код после того, какой YoutubeID имеет видео. До сих пор он работал без проблем, но с идентификатором 6BD2qnBozvE мой скрипт не будет работать.

Мой код

function onYouTubePlayerReady(playerId) {

    e3fqE01YYWs = document.getElementById('e3fqE01YYWs');
      setTimeout(function(){
        e3fqE01YYWs.setVolume(100);
        e3fqE01YYWs.playVideo();
      }, 750);

    6BD2qnBozvE = document.getElementById('6BD2qnBozvE');
      setTimeout(function(){
        6BD2qnBozvE.setVolume(53);
        6BD2qnBozvE.playVideo();
      }, 750);
        }

Сообщение об ошибке в Firebug

идентификатор начинается сразу после числового литерала [Break On This Error]

6BD2qnBozvE = document.getElementById('6BD2qnBozvE');

Почему это происходит и как я могу это исправить?

Редактировать: Джереми Бэнкс объясняет, почему, но я до сих пор не знаю, как решить мою проблему.

Вот как я генерирую свой код Javascript:

function onYouTubePlayerReady(playerId) {
<?php
foreach($projectMusicUn as $music => $volume){
?> 
<?php echo $music; ?> = document.getElementById('<?php echo $music; ?>');
setTimeout(function(){
    <?php echo $music; ?>.setVolume(<?php echo $volume; ?>);
<?php echo $music; ?>.playVideo();
  }, 750);
<?php
} //End of foreach($projectMusic as $music)
?>
}

person Victor Bjelkholm    schedule 12.02.2012    source источник


Ответы (1)


Вы пытаетесь присвоить значение переменной с именем 6BD2qnBozvE. Это не разрешено; имена переменных (идентификаторы) в JavaScript должны начинаться с буквы, подчеркивания или $.

Просто переименуйте его что-нибудь вроде video_6BD2qnBozvE. Пока вы это делаете, вам, вероятно, следует добавить ключевое слово var перед определением, чтобы не создавать глобальную переменную.

    var video_6BD2qnBozvE = document.getElementById('6BD2qnBozvE');

Добавляйте префикс вроде video_ каждый раз, когда он используется в качестве переменной в исходном коде генерации:

function onYouTubePlayerReady(playerId) {
    <?php
    foreach($projectMusicUn as $music => $volume){
        ?> 
        var video_<?php echo $music; ?> = document.getElementById('<?php echo $music; ?>');
        setTimeout(function(){
            video_<?php echo $music; ?>.setVolume(<?php echo $volume; ?>);
            video_<?php echo $music; ?>.playVideo();
        }, 750);
        <?php
    } //End of foreach($projectMusic as $music)
    ?>
}
person Jeremy    schedule 12.02.2012
comment
Это объясняет, почему... До сих пор не знаю, как это исправить, и обновил свой вопрос кодом о том, как я генерирую Javascript. - person Victor Bjelkholm; 12.02.2012