javascript - getElementById() 方法不适用于我的上一个函数

标签 javascript

我不明白为什么 getElementById() 方法不适用于我的上一个函数。我希望该函数的结果将出现在与先前函数的结果相同的位置,请帮助我得到这个。如果使用 document.writeln,它可以工作,但会在新窗口中打开。我无法理解其中的区别。

     function Sum(){
                    var num1= document.getElementById("value1").value;
                    var num2= document.getElementById("value2").value;
                    document.getElementById("result").innerHTML = +num1 + +num2;
                }
                function Difference() {
                    var num1= document.getElementById("value1").value;
                    var num2= document.getElementById("value2").value;
                    document.getElementById("result").innerHTML = +num1 - +num2;
                }
                function Division() {
                    var num1= document.getElementById("value1").value;
                    var num2= document.getElementById("value2").value;
                    document.getElementById("result").innerHTML = +num1 / +num2;
                }
                function Multiplication() {
                    var num1= document.getElementById("value1").value;
                    var num2= document.getElementById("value2").value;
                    document.getElementById("result").innerHTML = +num1 * +num2;
                }
                function testNum() {
                   var num1= document.getElementById("value1").value;
                   var num2= document.getElementById("value2").value;
                   document.write ("<CENTER><TABLE BORDER = '1'>") ;
                   if ( num1 == num2) {
                    document.writeln ("<TR><TD>" + num1 +" equal  " + num2 + "</TD></TR>") ;
                   } else if ( num1 != num2) {
                   document.writeln ("<TR><TD>" +num1+ " dosen't equal " +num2+ "</TD></TR>") ;
                   } else if ( num1 < num2) {
                   document.writeln ("<TR><TD>" +num1+ " less than " +num2+ "</TD></TR>") ;
                   } else ( num1 > num2)
                   document.writeln ("<TR><TD>" +num1+ " more than " +num2+ "</TD></TR>") ;
                   document.writeln ("</TABLE></CENTER>") ;
                }
<h2>Onderdeel 1</h2>
            <h2>The Sum Program</h2>
            <hr />
            <table>
                <tr>
                    <td>
                        <label>Enter A:</label>
                    </td>
                    <td>
                        <input type="text" name="value1" id="value1" value="3"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        <label>Enter B:</label>
                    </td>
                    <td>
                        <input type="text" name="value2" id="value2" value="4"/>
                    </td>
                </tr>
                <tr>
                    <td>
                        &nbsp;
                    </td>
                    <td>
                        <input type="button" value="Sum" onclick="Sum()" />
                        <input type="button" Value="Difference" onClick="Difference()" />
                        <input type="button" Value="Division" onClick="Division()" />
                        <input type="button" Value="Multiplication" onClick="Multiplication()" />
                        <input type="button" Value="testNum" onClick="testNum()" />
                    </td>
                </tr>
            </table>
             <tr>
                    <p>The Result is : <br>
                    <span id = "result"></span>
                    </p>
                </tr>
           

最佳答案

该问题与document.writein()相关方法,并且它不会在新选项卡/窗口中打开。事实上,正在发生的事情是您正在整个文档对象中写入。 只需打开任何页面并运行 document.writeln ("</TABLE></CENTER>")在控制台中看到相同的行为。

解决方案是使用 innerHTML .

下面是工作示例:

function Sum() {
  var num1 = document.getElementById("value1").value;
  var num2 = document.getElementById("value2").value;
  document.getElementById("result").innerHTML = +num1 + +num2;
}
function Difference() {
  var num1 = document.getElementById("value1").value;
  var num2 = document.getElementById("value2").value;
  document.getElementById("result").innerHTML = +num1 - +num2;
}
function Division() {
  var num1 = document.getElementById("value1").value;
  var num2 = document.getElementById("value2").value;
  document.getElementById("result").innerHTML = +num1 / +num2;
}
function Multiplication() {
  var num1 = document.getElementById("value1").value;
  var num2 = document.getElementById("value2").value;
  document.getElementById("result").innerHTML = +num1 * +num2;
}

function testNum() {
  var num1 = parseInt(document.getElementById("value1").value);
  var num2 = parseInt(document.getElementById("value2").value);
  var result = document.getElementById("result");
  if (num1 == num2) {
    result.innerHTML = num1 + " equal  " + num2;
  } else if (num1 != num2) {
    result.innerHTML = num1 + " not equal  " + num2;
  } else if (num1 < num2) {
    result.innerHTML = num1 + " less than " + num2;
  } else if (num1 > num2) {
    result.innerHTML = num1 + " more than " + num2;
  }
}
<h2>Onderdeel 1</h2>
<h2>The Sum Program</h2>
<hr />
<table>
  <tr>
    <td>
      <label>Enter A:</label>
    </td>
    <td>
      <input type="text" name="value1" id="value1" value="3" />
    </td>
  </tr>
  <tr>
    <td>
      <label>Enter B:</label>
    </td>
    <td>
      <input type="text" name="value2" id="value2" value="4" />
    </td>
  </tr>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>
      <input type="button" value="Sum" onclick="Sum()" />
      <input type="button" Value="Difference" onClick="Difference()" />
      <input type="button" Value="Division" onClick="Division()" />
      <input type="button" Value="Multiplication" onClick="Multiplication()" />
      <input type="button" Value="testNum" onClick="testNum()" />
    </td>
  </tr>
</table>
<tr>
  <p>The Result is : <br>
    <span id="result"></span>
  </p>
</tr>

关于javascript - getElementById() 方法不适用于我的上一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57695832/

相关文章:

javascript - 类型错误 : Cannot call method 'toArray' of undefined while aggregatein mongo in node. js

javascript - React/Redux 获取和过滤数据

javascript - 谷歌图表不会在顶部对齐

php - 如何根据Mysql中存储的时间重新加载PHP页面?

javascript - 在 Controller 中使用 ajax 请求的 AngularJS 指令中未定义范围

javascript - 这些在 package.json 中使用下划线前缀的属性是什么?

javascript - 来自面向对象 javascript 的 stoyanov javascript 原型(prototype)练习

javascript - react 得到所有 child 的引用

javascript - 在 Javascript 中 append 到 URL 一次以进行重定向

javascript - 支持 javascript 呈现的命令行浏览器,它只输出呈现的 HTML