javascript - 无法在我的 js 函数中使用 parseInt 或 Number 从 HTML 获取数值

标签 javascript html css

所以我正在尝试为 friend 的元素完成这个简单的 html 页面,目标是获得 2 个用户条目,分钟和秒,将与表中已有的数据进行比较,如果输入的分钟和秒大于表中的时间之一,它将被条目替换。 除了做一些简单的提示或警告之外,我从来没有使用过 js,所以我不知道我应该做什么。 这是 html、js 和 css:

function timeEntry() {
  var min1 = Number(document.getElementById('firstTimeMin'));
  var sec1 = Number(document.getElementById('firstTimeSec'));
  var min2 = Number(document.getElementById('secondTimeMin'));
  var sec2 = Number(document.getElementById('secondTimeSec'));
  var min3 = Number(document.getElementById('thirdTimeMin'));
  var sec3 = Number(document.getElementById('thirdTimeSec'));

  var entryMin = Number(prompt('What is the time in minutes ?'));
  var newTimeMin = entryMin;
  var entrySec = Number(prompt('What is the time in seconds'));
  var newTimeSec = entrySec;

  for (var i = 0; i < 3; i++) {
    if (entryMin > min1 && entrySec > sec1) {
      document.getElementById('firstTimeMin').innerHTML = newTimeMin;
      document.getElementById('firstTimeSec').innerHTML = newTimeSec;
      break;
    } else if (entryMin > min2 && entrySec > sec2) {
      document.getElementById('secondTimeMin').innerHTML = newTimeMin;
      document.getElementById('secondTimeSec').innerHTML = newTimeSec;
      break;
    } else if (entryMin > min3 && entrySec > sec3) {
      document.getElementById('thirdTimeMin').innerHTML = newTimeMin;
      document.getElementById('thirdTimeSec').innerHTML = newTimeSec;
      break;
    }
  };

}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

section {
  width: 100%;
  height: 100%;
}

table,
td {
  width: 40%;
  text-align: center;
  border: 1px solid black;
  border-collapse: collapse;
}

button {
  cursor: pointer;
  font-weight: 700;
}
<!DOCTYPE html>
<html>

<head>
  <title>Table of best times</title>
  <link rel="stylesheet" type="text/css" href="css/style.css">
  <script type="text/javascript" src="javascript/besttime.js"></script>
</head>

<body>
  <section>
    <table>
      <tbody>
        <caption>The best times</caption>
        <tr>
          <td id="firstTimeMin">1</td>
          <td id="firstTimeSec">2</td>
        </tr>
        <tr>
          <td id="secondTimeMin">3</td>
          <td id="secondTimeSec">4</td>
        </tr>
        <tr>
          <td id="thirdTimeMin">5</td>
          <td id="thirdTimeSec">6</td>
        </tr>
      </tbody>
    </table>

    <button onclick="timeEntry()">
		Enter a new time
	</button>
  </section>

</body>

</html>

我的想法是简单地使用 NumberparseInt 获取表中已有的数据来获取数字值,但无论哪种方式,我一直在做的测试,当我尝试从 html 中获取元素时,它告诉我我得到了一个数字类型,但是当我尝试在操作中使用它时,它返回 NaN。也许我只是愚蠢,但我一直在阅读并寻找一种方法从单元格中获取数据作为数字,但除了 NumberparseInt 或使用表格,我还没有找到执行此操作的方法,而且我搜索得越多,就越不明白为什么它不起作用。 任何有关如何完成这项工作的帮助或线索,即使这意味着从头开始,我们也将不胜感激。

最佳答案

document.getElementById('firstTimeMin') 只获取 DOM 元素,你应该做 document.getElementById('firstTimeMin').innerHTML 来获取 DOM 元素的内容HTML,因此您可以使用 parseInt()Number 获取数字。

对每个元素做同样的事情。

关于javascript - 无法在我的 js 函数中使用 parseInt 或 Number 从 HTML 获取数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58789689/

相关文章:

html - 错误 : CSS only takes effect when words are in visible quotes. Django。

css - 需要制作一个可点击的 <div> 按钮

javascript - 使用非单例服务在兄弟组件之间共享数据

javascript - 具有多个表达式的 JavaScript 中的三元运算符?

html - 对 HTML 或 CSS 进行更改时,它们在页面上不可见

javascript - 在单个 div 中添加社交计数值

javascript - 光标出现在搜索框上点击

javascript - JS Regex - 替换 Markdown 链接的内容

html - chrome 的定位问题

javascript - 当 background-size 值超过 255px 时,为什么 firefox 不渲染这个线性渐变?