我有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]

最佳答案

Textarea没有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中,因此您可以使用document.getElementById('textareaCode').value = 'test';动态更改内容(但不会将该属性添加到HTML,更令人惊讶的是,即使innerHTML将为您提供正确的更新值,它也不会更新DOM内容)。

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



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

<textarea id="textareaCode">existing text</textarea>

关于javascript - 无法以正确的方式附加 child ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56544239/

10-12 00:21
查看更多