如何使用 innerHTML 递增结果
How do I increment results using innerHTML
我已经设置了代码,只是每次单击进程UserText按钮时都无法获得递增的结果编号,有人可以指出我正确的方向吗?
function userHTML() {
var uput = document.getElementById('uput').value;
var num=1;
num = num ++;
var html = num + '.' + uput + '<br>' ;
//document.getElementById('result').innerHTML = html;
document.getElementById("results").innerHTML += html;
}
document.getElementById("processUserText").onclick = function() {
}
document.getElementById("reset").onclick = function(){
document.getElementById("results").innerHTML = "";
}
document.getElementById('processUserText').addEventListener("click", userHTML);
该 HTML:
<input name="uput" id="uput" type="text" size="50" placeholder="Enter your input!"/>
<input type="button" value="processUserText" id="processUserText">
<input type="button" value="Reset" id="reset">
<div id="results"></div>
您必须在
函数外部声明num
变量。如果它是在函数内部声明的,则在函数调用之间不会保留其值。
而不是
function userHTML() {
var num = 1;
num++;
// get user input and show new value
}
做这样的事情
var num = 1;
function userHTML() {
// get user input and show new value
num++;
}
此外,行num = num++;
实际上并不增加num
。您需要做的就是num++
.其原因是num++
(称为后增量)和++num
(预递增)之间的微妙区别。此代码说明了差异:
var a = 1;
console.log(a++); // 1
console.log(a); // 2
var b = 1;
console.log(++b); // 2
console.log(b); // 2
试试这个。 希望对...
<!DOCTYPE html>
<html>
<head>
<title>Index Page</title>
</head>
<body>
<form>
<input name="uput" id="uput" type="text" size="50" placeholder="Enter your input!"/>
<input type="button" value="processUserText" id="processUserText">
<input type="button" value="Reset" id="reset">
</form>
<div id="results"></div>
<script type="text/javascript">
var i = 0;
function userHTML() {
var uput = document.getElementById('uput').value;
var num = i;
var html = num + '. ' + uput + '<br>' ;
document.getElementById("results").innerHTML += html;
}
document.getElementById("processUserText").onclick = function() {
i++;
userHTML();
}
document.getElementById("reset").onclick = function() {
i = 0;
document.getElementById("results").innerHTML = "";
}
</script>
</body>
</html>
将var num=1;
移到 userHTML()
函数之外(否则每次调用时它总是设置为 1)。
并将num = num ++;
更改为num++;
,因为由于++运算符的优先级,第一个只是分配num = num。
你清除函数内部的num
。那么,这是怎么回事呢? Num
正在增加,但当它在函数内部声明时,它会再次设置为 1。所以,你需要在函数之外编写它:
var num=1;
function userHTML(){
}
下面是一个工作示例:
https://jsfiddle.net/5sp846x7/
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- 转义符不能与innerHTML一起使用
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 使用元素的值与innerHTML
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- Javascript form innerHTML
- 将地理编码结果转换为php变量以发布到mysql数据库
- JavaScript没有将结果值设置为<p>'的innerHTML
- 如何使用 innerHTML 递增结果
- 在 innerHTML 中返回多个结果
- 在循环中使用 innerHTML 无法正确显示 JSON 结果集
- 将结果从.html(或innerHtml)输入到inArray并使其工作
- 使用Javascript中的innerHTML将for循环的结果写入网页
- document.body.innerHTML嵌入SharePoint清除页面,如何打印结果和停止脚本
- 返回innerHtml的函数的结果是未定义的,原因是什么
- 在 HTML 中使用“button”和 innerHTML 时没有结果