我正在尝试大写我在文本输入中键入的所有内容,我可以在控制台上看到的js上的caps函数工作正常,但是innerhtml函数不会更改html文件



function clr() {
  document.getElementById("box").value = '';
}

function caps() {
  var str = document.getElementById("box").value;
  console.log(str);
  var res = str.toUpperCase();
  console.log(res);
  document.getElementById("box").innerHTML = res;
}

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>UI</title>
  <link rel="stylesheet" href="css.css">
  <script src="myscript.js"></script>

  <body>
    <div id="magic">
      <input id="box">
      <p id="pp">
        <button onclick="clr()">Clear It</button>
        <button onclick="caps()">Capitalize</button>
      </p>
    </div>
  </body>

</html>





在这里,我可以看到caps函数在控制台上运行正常,但在HTML文件中却无法运行

最佳答案

input元素没有.innerHTML属性。它们具有.value属性。

只有具有开始和结束标签的元素才能在其中包含任何HTML,因此只有<div><span><p>等元素可以使用.innerHTML

您在value函数中正确访问了clr



function clr() {
  document.getElementById("box").value = '';
}

function caps() {
  var str = document.getElementById("box").value;
  console.log(str);
  var res = str.toUpperCase();
  console.log(res);
  document.getElementById("box").value = res;
}

    <div id="magic">
      <input id="box">
      <p id="pp">
        <button onclick="clr()">Clear It</button>
        <button onclick="caps()">Capitalize</button>
      </p>
    </div>

关于javascript - javascript innerhtml没有响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49114270/

10-13 21:38