使用HTML中的JavaScript函数添加到变量

使用HTML中的JavaScript函数添加到变量,javascript,html,Javascript,Html,我刚开始学习Javascript几个小时,正在尝试使用一个函数在HTML中使用JS添加变量(如果我使用了错误的术语,很抱歉),但它似乎并没有改变结果 <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=devic

我刚开始学习Javascript几个小时,正在尝试使用一个函数在HTML中使用JS添加变量(如果我使用了错误的术语,很抱歉),但它似乎并没有改变结果

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script>
            var userID = 1;
            var userRep = 0;
            function NumUp(userRep) {
                userRep = userRep + 1;
            }
            function NumDown(userRep) {
                userRep = userRep - 1;
            }
            function myFunction() {
                document.getElementById("demo").innerHTML = userRep;
            }
        </script>
    </head>
    <body>
        <form action="Reputation.JS">
            <div class="container">
                <p>result goes here</p>
                <button type="button" onclick="NumUp()" id="voteUp">Vote Up</button>
                <button type="button" onclick="NumDown()" id="voteDown">Vote Down</button>
                <label id="lbl"></label>
                <button onclick="myFunction()">Click me</button>
                <p id="demo"></p>
            </div>
        </form>
    </body>
</html>

提供头衔
var userID=1;
var userRep=0;
函数NumUp(userRep){
userRep=userRep+1;
}
函数NumDown(userRep){
userRep=userRep-1;
}
函数myFunction(){
document.getElementById(“demo”).innerHTML=userRep;
}
结果就在这里

投票赞成 否决 点击我

非常感谢您提供的帮助。

查看代码

function NumUp(userRep){
     userRep = userRep + 1;
}
userRep
是一个局部变量,您正在尝试打印全局变量的值。因此它始终显示
0
,因为全局未更改

另外,如果在
按钮
元素中未提及任何
类型
,则将其视为
提交
按钮。如果不想提交表单,只需添加
type=button

解决方案是在函数中删除该参数或更改该参数的名称

var userID=1;
var userRep=0;
函数NumUp(){
userRep=userRep+1;
}
函数NumDown(){
userRep=userRep-1;
}
函数myFunction(){
document.getElementById(“demo”).innerHTML=userRep;
}

结果就在这里

投票赞成 否决 点击我


无需将参数传递给正在调用的方法,因为该参数已经是全局变量

function NumUp() {
  userRep = userRep + 1;
}

function NumDown() {
  userRep = userRep - 1;
}
当您定义一个函数,该函数接受一个参数
userRep
,但在调用该函数时不传递该值时,它将变为
undefined
,向其添加一个数字将导致
NaN
由于使用参数值而不是全局值进行计算,因此该值是本地化的-这就是为什么该值不变的原因

演示


提供头衔
var userID=1;
var userRep=0;
函数NumUp(){
userRep=userRep+1;
}
函数NumDown(){
userRep=userRep-1;
}
函数myFunction(){
document.getElementById(“demo”).innerHTML=userRep;
}
结果就在这里

投票赞成 否决 点击我


我希望这会有所帮助。多谢各位


提供头衔
var userID=1;
var userRep=0;
函数NumUp(){
userRep=userRep+1;
myFunction();
}
函数NumDown(){
userRep=userRep-1;
myFunction();
}
函数myFunction(){
document.getElementById(“demo”).innerHTML=userRep;
}
结果就在这里

投票赞成 否决 点击我


从NumUp和Numdown中删除userRep,NumUp和Numdown是函数中的一个局部变量,当您不提供时,其值将变得未定义

function NumUp(){
         userRep = userRep + 1;
    }
function NumDown(){
         userRep = userRep - 1;
    }
使用以下命令

<html>
<head>
    <title>TODO supply a title</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script>
        var userID = 1;
        var userRep = 0;
        function NumUp () {
            userRep = userRep + 1;
        }
        function NumDown () {
            userRep = userRep - 1;
        }

        function myFunction (event) {
            event.preventDefault();
            document.getElementById("demo").innerHTML = userRep;
        }
    </script>

</head>
<body>
    <form action="Reputation.JS">
        <div class="container">
            <p>result goes here</p>
            <button type ="button" onclick="NumUp()"  id="voteUp">Vote Up</button>
            <button type ="button" onclick="NumDown()"  id="voteDown">Vote Down</button>
            <label id="lbl"></label>
            <button onclick="myFunction(event)">Click me</button>
            <p id="demo"></p>
        </div>
    </form>
</body>

提供头衔
var userID=1;
var userRep=0;
函数NumUp(){
userRep=userRep+1;
}
函数NumDown(){
userRep=userRep-1;
}
函数myFunction(事件){
event.preventDefault();
document.getElementById(“demo”).innerHTML=userRep;
}
结果就在这里

投票赞成 否决 点击我


这将帮助您从NumUp和Numdown中删除userRep,这是函数中的一个局部变量


提供头衔
var userID=1;
var userRep=0;
函数NumUp(){
userRep=userRep+1;
}
函数NumDown(){
userRep=userRep-1;
}
函数myFunction(){
document.getElementById(“demo”).innerHTML=userRep;
}
结果就在这里

投票赞成 否决 点击我


根据您的代码,Numbup和Numdown需要参数,但您在通话时没有传递参数。非常感谢guysHi mate非常感谢工作出色,正如我所看到的,我唯一的问题是我包含了类型按钮属性,对吗?如果是,为什么?嗨,mate,不需要将参数传递给您正在调用的方法,因为如果您没有提到任何类型的按钮元素,该参数已经是一个全局变量,将被视为submit button。如果您不想提交表单,那么只需添加type=button,rest-all代码就是完美的