0

Скажите пожалуйста, как сделать чтобы массив менялся при нажатии на span!)

<span onclick="ne_rabotaet()">Нажатие ___</span>

<script>
    var a=[];

    function ne_rabotaet() {
        a[1]=5;
    }
    document.write(a[1]);
</script>

Ведь так все работает!

<span>Нажатие ___</span>

<script>
    var a=[];

    function rabotaet_ne_to() {
        a[1]=5;
    }
    rabotaet_ne_to();

    document.write(a[1]);
</script>
Mr. LOLO
  • 145
  • потому что var a=[]; и document.write(a[1]); выполняются по готовности документа, function lol() {a[1]=5;} - при клике https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Functions#%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C_%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9 не меняет переменную и массив? - меняет. проверить можно function lol() { a[1]=5; console.log(a); } –  Sep 30 '19 at 17:27

1 Answers1

0

Ответ очень простой - во втором примере вы запускаете lol() в скрипте, а в первом нет, соответственно a[1] в первом случае не присваивается. Вывод сообщения происходит еще при загрузке страницы и без нажатия. Т.е. здесь проблема не в onclick. При нажатии на span значение в функции присваиваивается, но вы же его не выводите.

Alex
  • 1,875
  • Ага, но как сделать чтобы при нажатии на span первый вариант срабатывал? – Mr. LOLO Oct 01 '19 at 05:54