Javascript-эквивалент goto

Я программирую базовый счетчик кликов для своего сайта на скрытой странице с пасхальным яйцом, когда столкнулся с проблемой, с которой никогда не сталкивался при программировании в Интернете: есть ли у Javascript эквивалент goto для других языков программирования. Ниже приведен код, если кто-то может внести в него коррективы, чтобы отображаемые «щелчки» изменялись и не оставались равными 0, пока сама переменная изменяется позже в коде.

<html>
<body>
<h2>
<script>
var clicks = 0
</script>
<script>
document.write(clicks)
</script>
<br>
<button onclick ="clicks = clicks + 1">Click me</button>
</body>
</html>

person Tristan    schedule 26.04.2014    source источник
comment
Обновление текстовых полей обычно не выполняется с помощью goto на любом языке.   -  person Chuck    schedule 27.04.2014
comment
На самом деле неясно, чего вы пытаетесь достичь или как, по вашему мнению, поможет goto.   -  person p.s.w.g    schedule 27.04.2014
comment
Существует безумное количество тем, в которых используется один и тот же заголовок вопроса: stackoverflow.com/search?q=Javascript+goto   -  person Francis Smart    schedule 27.04.2014
comment
@ Дон Роби: я думаю, что здесь ситуация другая. Хотя вопросы вроде те же.   -  person DRAX    schedule 27.04.2014
comment
Конечно, JavaScript имеет аналог goto.   -  person nnnnnn    schedule 27.04.2014
comment
Подумайте о том, чтобы задать конкретный вопрос вместо того, чтобы просить изменить код. Также непонятно, как в этом поможет оператор goto. Вы можете предпочесть определить функцию и вызывать ее всякий раз, когда вы хотите выполнить определенный код, вместо того, чтобы изменять поток выполнения с помощью goto.   -  person Jorge Riv    schedule 26.07.2019


Ответы (4)


Вам нужно написать, а затем несколько раз вызвать функцию. И вы не хотите, чтобы эта функция вызывала document.write; вы, вероятно, хотите, чтобы он добавлял текст к существующему узлу DOM.

Я предлагаю взять вводную книгу по JavaScript.

person Lightness Races in Orbit    schedule 26.04.2014

Создайте следующий HTML-контент:

    <div id="myDiv"></div>

Кроме того, после обновления значения переменной clicks обновите содержимое div следующим образом:

document.getElementById("myDiv").innerHTML = clicks;
person Edge7    schedule 26.04.2014

Хотя я новичок в Javascript, у меня есть опыт работы с Python, Java и C++, и единственной реальной альтернативой GOTO является определяемая пользователем функция. Я считаю, что в javascript это просто function functionname { code here }

person Beta Decay    schedule 26.04.2014

Нет. Обычно использование оператора goto — плохая идея.

Что вам нужно сделать, так это писать clciks для определенного элемента каждый раз, когда пользователь щелкает. Так:

<html>
<body>
<h2>
<script>
var clicks = 0
</script>
<div id="myinfo"></div>
<br>
<button onclick="clicks = clicks + 1; document.getElementById('myinfo').innerHTML=clicks">Click me</button>
</body>
</html>

Кроме того, вы можете использовать более короткую команду:

<button onclick="clicks = clicks + 1; myinfo.innerHTML=clicks">Click me</button>
person DRAX    schedule 26.04.2014
comment
Почти уверен, что последний пример нестандартен и не переносим. - person Lightness Races in Orbit; 27.04.2014
comment
Если я правильно понял, он находится в стадии стандартизации: stackoverflow.com/questions/3434278/ - person DRAX; 27.04.2014
comment
Это действительно очень жаль. Несмотря на это, на данный момент то, что я сказал ранее, остается правдой. - person Lightness Races in Orbit; 27.04.2014