0

我有一个小代码尝试使用 HTML 输入将值附加到同一个文档。

<h2 id="myh"> Header</h2>
<input type="text" id="text">
<button onclick="func()">Append</button>
<script type="text/javascript">
  var child = document.getElementById("text").value;

  function func() {
    var h = document.getElementById('myh');
    h.insertAdjacentHTML('afterend', '<p> New Para' + toString(child) + '</p>');
  }
</script>

变量child不从输入中获取文本值,其输出为“未定义”

图一:打字Test

在此处输入图像描述

图 2:单击按钮

在此处输入图像描述

如何从输入中获取值作为 New ParaTest?

使用答案编辑的代码。

4

3 回答 3

1

你不需要toString()方法,删除它。

child获取变量中元素的引用value并获取func()

var child = document.getElementById("text");

function func() {
  var h = document.getElementById('myh');
  h.insertAdjacentHTML('afterend', '<p> New Para: ' + child.value + '</p>');
}
<h2 id="myh"> Header</h2>
<input type="text" id="text">
<button onclick="func()">Append</button>

于 2019-08-22T07:54:25.513 回答
1

child变量需要在 func 函数内部分配,不需要toString() 尝试这个

function func(){
   var h = document.getElementById('myh');
   let child = document.getElementById("text").value;
   h.insertAdjacentHTML('afterend','<p> New Para' + child + '</p>');
}
<html>
<body>
    <h2 id="myh"> Header</h2>
    <input type="text" id="text">
    <button onclick="func()">Append</button>
</body>
</html>

于 2019-08-22T07:54:52.427 回答
1

你的变量应该是全局的。尝试将其放入函数中,然后检查它。

    function func(){
        var child = document.getElementById("text").value;
        var h = document.getElementById('myh');
        h.insertAdjacentHTML('afterend','<p> New Para' + toString(child) + '</p>');
    }
于 2019-08-22T07:55:35.883 回答