无法以正确的方式附加孩子

时间:2019-06-11 12:54:03

标签: javascript html

我有textarea,我想在获取textarea的值之前附加一个段落标签。

我正在尝试使用Javascript create元素

var desc = document.createElement("p");
desc.innerHTML = description;
var abc = document.getElementById("textareaCode").appendChild(desc);
alert (abc);
 var comment = document.getElementById('textareaCode').value;
alert (comment);

这是错误消息

[对象HTMLParagraphElement]

3 个答案:

答案 0 :(得分:3)

文本区域不具有value属性。您可以使用innerHTML来获取标签之间的内容:

var desc = document.createElement("p");
desc.innerHTML = 'blablabla';
var abc = document.getElementById("textareaCode").appendChild(desc);
var comment = document.getElementById('textareaCode').innerHTML;
alert (comment);
<textarea id="textareaCode"></textarea>

注意,就像Victor Popescu所说的那样,即使HTML属性value本身在文本区域中不存在,该setter也存在于javascript中,因此您可以使用{ {1}}(但这不会将属性添加到HTML,更令人惊讶的是,即使document.getElementById('textareaCode').value = 'test';会为您提供正确的更新值,也不会更新DOM内容。)

关于其余问题,您可以直接操作innerHTML将文本添加到现有文本中。但请注意,HTML标签将呈现为文本(innerHTML变成<等)。要么添加一个HTML对象,它就不会在文本区域中显示为文本,也不会被视为HTML:

&lt;
var description = 'blablabla';
document.getElementById('textareaCode').innerHTML += '<p>' + description + '</p>';
var comment = document.getElementById('textareaCode').innerHTML;
alert (comment);

答案 1 :(得分:0)

您确定这没有按预期进行吗?首先,您提醒'abc'这是一个元素。因此,警报告诉您这是一个元素。之后,您将发出警报(注释),它应该是您要寻找的警报。

答案 2 :(得分:0)

var description ="hello world! love coding"; document.getElementById("textareaCode").value=description;
 var comment = document.getElementById('textareaCode').value;
alert (comment)
<textarea id="textareaCode"></textarea/>
您不能将html元素附加到文本区域,而可以使用值!