HTML中的Javascript,努力使for循环为按钮工作

Posted

技术标签:

【中文标题】HTML中的Javascript,努力使for循环为按钮工作【英文标题】:Javascript in HTML, struggling to make a for loop work for a button 【发布时间】:2021-02-25 22:49:59 【问题描述】:

我正在尝试在 html 中使用 javascript,但遇到了一些麻烦。 我现在的目标是拥有一个按钮,当按下该按钮时,它会打印出一系列中断和降为 1 的数字,就像倒计时一样。一旦我在页面中实现了该功能,我将在一个文本框中工作,用户可以使用该文本框来拥有自己的倒数到 1 的数字。非常简单,但我碰壁了。我正在尝试使用与 HTML 文件位于同一文件夹中的 .js 库来执行此操作。这是我的 HTML 的外观:

<!doctype html>
<!-- project10.html -->

<html>
    <head>
        Hello!
    </head>
    <body>
        <title>Testing Function</title>
        <script type="text/javascript" src="test.js"></script>
        <p id="demo" onclick="myFunction(5)">Click this text to show a countdown.</p>
    </body>
</html>

不是最干净的,我知道。这是位于同一文件夹中的 test.js:

function myFunction(b2)
    for (i=b2;i>0;i--)
    document.getElementById("demo").innerHTML = i;
    document.getElementById("demo").innerHTML = "<br>";
    

【问题讨论】:

5&lt;1 永远不会是真的 试试改成i &gt; 0 成功。谢谢你。但是,当我单击文本时,它只会删除文本,将其替换为任何内容。 对,因为innerHTML = 'thing' 替换了值,所以它不会追加它。 .innerHTML += i +'&lt;br&gt;'; .... += 将追加 我什至不知道 += 是 .innerHTML 的东西......并且尝试它......它奏效了。哇。谢谢一帮朋友。希望几年后我能这么流利...... 【参考方案1】:

正如我看到的问题,任务是为函数提供一个数字,并按降序输出。

我创建了一个 ul 元素,您可以在循环的每次迭代中附加一个 li 标记,以便您可以看到数字倒计时。

我还将p 元素更改为button,因为这更适合给定任务,您通常单击按钮,而不是段落。

<html>
    <head>
        Hello!
    </head>
    <body>
        <title>Testing Function</title>
        <script type="text/javascript" src="test.js"></script>
        <button onclick="myFunction(5)">
        Click this text to show a countdown.
        </button>
        <ul id='list'>
          
        </ul>
    </body>
</html>

在 Javascript 文件中,我使用了您的循环,更改了传入参数的名称,这样做是为了尽可能具有描述性。

从这里开始,我们倒计时,每个循环都会减少您传入的数字的值,在您的情况下为 5。

在每个循环中,我们创建一个新的 li 元素,然后将 innerHTML 添加到它,该值是循环中的当前值,然后将其附加到 ul 元素。

function myFunction(number)
    const ul = document.getElementById('list')
    
    for (i = number; i > 0; i--)
      let item = document.createElement('li')
      item.innerHTML = i
      ul.appendChild(item)
    

【讨论】:

虽然这样的答案可能会解决问题代码,但 SO 不欢迎答案。您应该解释其中的代码或更改,以便 OP 真正学到一些东西。

以上是关于HTML中的Javascript,努力使for循环为按钮工作的主要内容,如果未能解决你的问题,请参考以下文章

Javascript中的For循环

for循环中的Javascript内存使用情况

前端 JavaScript 中的三种 for 循环语句总结

JAVASCRIPT / REACT:为 for 循环中的每个元素返回 HTML

JavaScript基础 if 循环 for 循环

用零填充时无法使 JavaScript 循环工作