如何在 JS 中使用模板文字打印用户的输入?它给出了错误
How to print input from user with template literals in JS? It's giving error
我正在使用 JS 来呈现 HTML 代码,并且还想在 HTML 中添加用户输入,因为我正在使用模板文字,但它不起作用。它说 [object HTMLTextAreaElement]
我正在使用此代码。
<script>
function print(){
var heading = document.getElementById("heading") //I have a input tag with id heading in HTML code and type text
open = document.open("")
open.document.write(`
<!DOCTYPE html>
<html>
<head>
<title>Dummy Page</title>
</head>
<body>
<div>
<h1>${heading}</h1>
// this line is supposed to print user input.
</div>
</body>
</html>
}
</script>
页面上打印的消息 [object HTMLTextAreaElement]
准确地告诉您问题所在:您正试图将 DOM 节点注入到字符串模板中。
您应该做的是获取元素 #heading
的值(因为它是一个文本区域元素,它将具有 value
属性),而不是 DOM 节点本身。这应该有效:
var heading = document.getElementById("heading").value;
如果我没理解错的话,您正在尝试从标题元素中获取文本,将其分配给一个新变量,然后将其附加到 html 代码中。
所以你需要得到的是元素的值而不是DOM节点:
var heading = document.getElementById("heading").value;
我正在使用 JS 来呈现 HTML 代码,并且还想在 HTML 中添加用户输入,因为我正在使用模板文字,但它不起作用。它说 [object HTMLTextAreaElement]
我正在使用此代码。
<script>
function print(){
var heading = document.getElementById("heading") //I have a input tag with id heading in HTML code and type text
open = document.open("")
open.document.write(`
<!DOCTYPE html>
<html>
<head>
<title>Dummy Page</title>
</head>
<body>
<div>
<h1>${heading}</h1>
// this line is supposed to print user input.
</div>
</body>
</html>
}
</script>
页面上打印的消息 [object HTMLTextAreaElement]
准确地告诉您问题所在:您正试图将 DOM 节点注入到字符串模板中。
您应该做的是获取元素 #heading
的值(因为它是一个文本区域元素,它将具有 value
属性),而不是 DOM 节点本身。这应该有效:
var heading = document.getElementById("heading").value;
如果我没理解错的话,您正在尝试从标题元素中获取文本,将其分配给一个新变量,然后将其附加到 html 代码中。
所以你需要得到的是元素的值而不是DOM节点:
var heading = document.getElementById("heading").value;