javascript - 当我尝试设置一个 HTML 和 JS
问题描述
我每 10 秒调用一次这个 JS 函数,但没有任何反应。当在 Chrome 的 JS 控制台中输入完全相同的代码时,我得到了想要的结果。到底是怎么回事?
document.getElementById("mesText").innerHTML = ("Message (" + "Estimated cost: " + ((375 + document.getElementById("MessageBox").value.length * 8 + document.getElementById("name").value.length * 8)) + " Gas)");
<label for="mes" class="col-lg-2 control-label" id="mesText">
Message
</label>
解决方案
我怀疑您不想在消息后更新该部分,因为您发布的代码中span
没有h1
这样的元素。我已经尝试过你的代码并且它有效。检查您的 html 文件中是否有带有 ids: 的元素,MessageBox
因为name
该代码正在获取它们的值。
另请注意,具有提及 id 的元素不能只是任意的 html 元素,而是那些实际上具有value
与之关联的属性的元素。否则你会得到一个错误,因为你正在使用value.length
which 在这种情况下不能使用(value
会是undefined
,并且undefined
没有length
属性)。
document.querySelector('button').addEventListener('click', event => {
document.getElementById("mesText").innerHTML = ("Message (" + "Estimated cost: " + ((375 + document.getElementById("MessageBox").value.length * 8 + document.getElementById("name").value.length * 8)) + " Gas)");
});
<input type="text" id="name" />
<input id='MessageBox' />
<button>submit</button>
<label for="mes" class="col-lg-2 control-label" id="mesText">
Message:
</label>
而且我建议对您的代码进行一些重构,因为它确实不那么可读,这也使得测试变得更加困难。您可以进行一些修改并检查输出console.log
以查看您是否获得了正确的元素。
const btn = document.querySelector('button');
const output = document.getElementById("mesText");
const messageBox = document.getElementById("MessageBox");
const name = document.getElementById("name");
console.log(messageBox);
console.log(name);
btn.addEventListener('click', event => {
output.innerHTML = ("Message (" + "Estimated cost: " + ((375 +
messageBox.value.length * 8 + name.value.length * 8)) + " Gas)");
});
<input type="text" id="name" />
<input id='MessageBox' />
<button>submit</button>
<label for="mes" class="col-lg-2 control-label" id="mesText">
Message:
</label>
推荐阅读
- cloudkit - 如何在系统设置页面更改 CloudKit displayName?
- c++ - 特化具有多个值和相同特化的非类型模板函数
- javascript - 按指定顺序对对象属性进行排序
- django - 如何在 django 中测试自定义身份验证后端
- typescript - 如何在不重写变量的情况下更改 TypeScript 中的变量类型?
- javascript - 使用 cronjob 运行脚本时缺少 Puppeteer
- javascript - 未捕获的 TypeError:response.json 不是 HTMLButtonElement 的函数
- symfony - 为什么 CORS 策略仅在我转储时才阻止请求?
- java - 想问用户画出多少步,打印出多少步。我该怎么做?
- java - 是否可以从 java 中的 If 语句中抛出异常?