Тебе действительно не нужен цикл for.
let number = 0;
function increase() {
if (number <= 50) {
document.getElementById("number").innerHTML = number += 1;
}
}
function double() {
if (number > 50) {
document.getElementById("number").innerHTML = number += 2;
}
}
.button1border {
border: black 3px solid;
margin: 10px 1280px 0px 0px;
width: 60px;
}
<!DOCTYPE="html">
<html>
<link rel="stylesheet" type="text/css" href="/style.css">
<button type="button" onclick="increase()">
by 1
</button>
<button onclick="double()">
by 2
</button>
<div class="button1border">
number:
<div id="number">
</div>
</div>
<script src="script.js" type="text/javascript"></script>
</html>
Я нашел ответ на форумах .net. Он содержит хорошее объяснение того, почему ASP.Net ведет себя так, как он есть:
Мы наконец-то получили надежное воспроизведение и определили основную проблему. Тривиальное воспроизведение выглядит следующим образом:
<% if (true) {%> <% = 1%> <%}%> <% = 2%>
Чтобы предоставить intellisense в блоках <% =%> во время разработки, ASP.NET генерирует присваивание временной переменной __o, а язык (VB или C #) затем предоставляет intellisense для переменной. Это делается, когда компилятор страницы видит первый блок <% = ...%>. Но здесь блок находится внутри if, поэтому после закрытия if переменная выходит из области видимости. В итоге мы генерируем что-то вроде этого:
if (true) { объект @__o; @__o = 1; } @__o = 2;
Обходной путь - добавить фиктивное выражение в начале страницы. Например, <% = ""%>. Это ничего не будет отображать, и это будет гарантировать, что __o объявлен как верхний уровень в методе Render, перед любым потенциальным оператором if (или другой области видимости).
Альтернативное решение - просто использовать
<% response.write(var) %>
вместо
<%= var %>
Да, я иногда сталкивался с одной и той же ошибкой на страницах, которые используют серверные конструкции на страницах ASPX.
Сверхурочные Я нашел исправление для этого (извините, я просто не смог выяснить, где я снова нашел этот бит информации.) И это исправление - поместить следующий код над ошибочным <% ...%>
block:
<%-- For other devs: Do not remove below line. --%>
<%="" %>
<%-- For other devs: Do not remove above line. --%>
Очевидно, что если вы поместите приведенный выше код, все будет иметь значение для VS.NET, поэтому может потребоваться несколько попыток, чтобы сделать это правильно.