javascript - HTML 和 Javascript:如何将包含用户输入的段落元素附加到 div 元素中?
问题描述
我正在尝试创建一个简单的网页作为测试,看看我是否可以放置用户输入的文本(使用 textarea)并使用按钮添加它。此按钮旨在创建一个新的段落元素,在其中包含该用户输入,并将该段落附加到一个 div 元素。
<!DOCTYPE html>
<html>
<script>
function insert_text () {
var para = document.createElement('p');
var node = document.createTextNode('This is new.');
para.appendChild(node);
var element = document.getElementById('content_body');
element.appendChild(para);
}
</script>
<body>
<fieldset>
Text to insert: <br/>
<textarea id="content" rows="10" cols="50"></textarea>
<button id="add" onclick="insert_text()">Add</button>
<fieldset>
<div id="content_body">
</div>
</body>
</html>
目前,我只能设法附加一个预制的文本节点,如var node = document.createTextNode('This is new.');
当我想对我的函数进行更改时看到的那样,它会抓取用户输入,这就是insert_text()
函数的样子:
function insert_text () {
var para = document.createElement('p');
var node = document.getElementById('content').value;
para.appendChild(node);
var element = document.getElementById('content_body');
element.appendChild(para);
}
但是当我这样做时,没有任何东西最终被附加到 div 元素......我的问题似乎是什么?
解决方案
在您的第二个 insert_text 函数中,您var node
的不是 DOM 元素而是字符串。它是文本区域内的content
文本,但仅此文本并不构成 HTML 元素。
使用示例中的文本节点,您可以使用文本区域的字符串内容创建和初始化文本节点。这样你就得到了一个节点,它的文本值就是你想要的。
var para = document.createElement('p');
var node = document.createTextNode(document.getElementById("content").value);
para.appendChild(node);
推荐阅读
- sql - 如何在合并语句中插入子查询中的值
- python-3.x - 我无法让我的 IIR 带通滤波器工作
- java - Eclipse 显示“对象”而不是 var 的正确类型
- c# - C# 堆叠面板与新表单
- adobe - 无法在 Acrobat 中更改表单域的背景颜色
- javascript - 如何修复 Tailwindcss div 高度溢出父 div
- python - os python模块使其他代码无法正常工作
- typescript - 如何将 switch case 转换为查找表
- flutter - Flutter 持续集成 (CI) 无法在 github 上运行,因为项目位于文件夹中
- asp.net - ASP.NET Web 窗体按钮未在代码隐藏中引用