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>

Също така, след като актуализирате стойността на променливата за кликвания, актуализирайте съдържанието на 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