Javascript 这些函数是';t合作:/

Javascript 这些函数是';t合作:/,javascript,Javascript,函数myFunction(){ var x=数学地板((数学随机()*10)+1); document.getElementById(“demoX”).innerHTML=x; 变量y=数学地板((数学随机()*10)+1); document.getElementById(“demoY”).innerHTML=y; document.getElementById(“deop”).innerHTML=“+”; document.getElementById(“相等”).innerHTML=“=”

函数myFunction(){
var x=数学地板((数学随机()*10)+1);
document.getElementById(“demoX”).innerHTML=x;
变量y=数学地板((数学随机()*10)+1);
document.getElementById(“demoY”).innerHTML=y;
document.getElementById(“deop”).innerHTML=“+”;
document.getElementById(“相等”).innerHTML=“=”;
document.getElementById(“输入”).innerHTML=“”;
document.getElementById(“检查”).innerHTML=“检查”;
}
函数myBunction(){
myFunction();
变量b,文本;
//使用id=“numb”获取输入字段的值
b=document.getElementById(“输入”).value;
var D=document.getElementById(“demoX”).value;
var E=document.getElementById(“demoY”).value;
//如果x不是一个数字或小于1或大于10
如果(b==E+D){
text=“输入正常”;
}否则{
text=“输入无效”;
}
document.getElementById(“demo”).innerHTML=text;
}
单击该按钮可显示介于1和10之间的随机数

试试看


您的问题有四个方面。一:

document.getElementById("demoX").value
不返回任何内容。
元素没有
。它有一个
innerHTML
,正是您用来设置它的


二:

E
D
将是字符串。添加两个字符串的结果是一个组合字符串

“4”+“3”
不是
“7”
,而是
“43”

首先要将它们转换为数字。除此之外,一元的
+
可以做到这一点。尝试:

b = +b;
D = +D;
E = +E;
if (b == E + D) {

第三:您希望在读取所有值之后而不是之前重置表单


第四:通过innerHTML动态创建所有这些固定的输入字段和按钮有什么用?直接把它们放到HTML中,让它们坐在那里


所以

函数重置(){
var x=数学地板((数学随机()*10)+1);
document.getElementById(“demoX”).innerHTML=x;
变量y=数学地板((数学随机()*10)+1);
document.getElementById(“demoY”).innerHTML=y;
document.getElementById(“输入”).value=“”;
document.getElementById(“deop”).innerHTML=“+”;
document.getElementById(“相等”).innerHTML=“=”;
}
函数检查(){
变量b、D、E、文本;
//使用id=“numb”获取输入字段的值
b=+document.getElementById(“输入”).value;
D=+document.getElementById(“demoX”).innerHTML;
E=+document.getElementById(“demoY”).innerHTML;
如果(b==E+D){
text=“输入正常”;
}否则{
text=“输入无效”;
}
document.getElementById(“demo”).innerHTML=text;
重置();
}
重置()
单击该按钮可显示介于1和10之间的随机数

检查

已解决且更好的代码

试验


//=========生成问题|=====//
函数myGenerator(){
var x=数学地板((数学随机()*100)+1);
document.getElementById(“demoX”).innerHTML=x;
变量y=数学地板((数学随机()*100)+1);
document.getElementById(“demoY”).innerHTML=y;
document.getElementById(“deop”).innerHTML=“+”;
document.getElementById(“相等”).innerHTML=“=”;
document.getElementById(“numbs”).innerHTML=“”;
document.getElementById(“检查”).innerHTML=“检查”;
}
//======检查给定的解决方案|=====//
函数myChecker(){
变量a,文本;
a=document.getElementById(“numb”).value;
var b=parseFloat(document.getElementById(“demoX”).textContent);
var c=parseFloat(document.getElementById(“demoY”).textContent);
//======简单如果|=====//
如果(a==b+c){
警惕(“祝贺”);
text=“右”;
}否则{
警惕(“可能下次”);
text=“错误”;
}
document.getElementById(“demo”).innerHTML=text;
//======只是为了控制|=====//
控制台日志(a);
控制台日志(b);
控制台日志(c);
}

单击开始
试试看



您是否尝试过
document.getElementById(“demoX”).text()
?@AlexPavlov,但这不起作用。这里没有jQuery。@AlexPavlov,这是一个jQuery方法。香草Javascript只是.text。document.getElementById(“demoX”)返回什么?如果您将其记录在控制台日志中,您将一无所获,因为span没有价值,请使用innerHTML或innerTEXT,而不是您本可以为您的问题选择更好的标题,思考标题可以帮助您了解正在发生的事情,最终您可以自己解决问题。答案不错,也许我不会提供完整的解决方案让OP自己解决;)@Andrea我相信OP在任何情况下都有很多需要发现的地方,给他们一点先发制人的机会不会有什么坏处。因为你花了这么多时间去做,而且@Tomalak费心强调你所有的错误,我会给他一些信任,让他接受他的答案,而不是重写一个,但这只是我的意见;)
b = +b;
D = +D;
E = +E;
if (b == E + D) {
<script>

    //=====|Generate the problem|=====//

    function myGenerator() {

        var x = Math.floor((Math.random() * 100) + 1);
        document.getElementById("demoX").innerHTML = x;

        var y = Math.floor((Math.random() * 100) + 1);
        document.getElementById("demoY").innerHTML = y;


        document.getElementById("demoP").innerHTML = " + ";

        document.getElementById("equal").innerHTML = " = ";

        document.getElementById("numbs").innerHTML = "<input id=numb>";

        document.getElementById("check").innerHTML = "<button>Check</button>";

    }

    //=====|Check the given solution|=====//

    function myChecker() {

        var a, text;

        a = document.getElementById("numb").value;

        var b = parseFloat(document.getElementById("demoX").textContent);

        var c = parseFloat(document.getElementById("demoY").textContent);

        //=====|Simple if|=====//

        if (a == b + c) {
            alert("Congratulation");
            text = "Right";
        } else {
            alert("Maybe next time");
            text = "Wrong";
        }
        document.getElementById("demo").innerHTML = text;

        //=====|Just for control|=====//
        console.log(a);
        console.log(b);
        console.log(c);

    }
</script>
<h1>Click to start</h1>

<button onclick="myGenerator()">Try it</button>

<br>
<br>

<!--=====|Hidden Stuff|=====//-->
<span id="demoX"></span>
<span id="demoP"></span>
<span id="demoY"></span>
<span id="equal"></span>

<span onclick="myChecker()" id=check></span>
<span id="numbs"></span>
<!--=====|Response|=====//-->
<p id="demo">