Javascript createElement(“TEXTAREA”)显示为[object ...]

时间:2014-08-23 09:33:51

标签: javascript html

所以我试图在HTML列表的onMouseOver描述中输入文本区域。我决定尝试.createElement(' TEXTAREA')但它返回[object HTMLTextAreaElement]。 (另外,如果你能告诉我一个更简单的方法来放置HTML标签而不使用会膨胀XD的文本区域) 这是代码:

   } else if (a === 'var') {
      var textarea = document.createElement("TEXTAREA");
    var t = document.createTextNode("<code>, <var>, <samp> and <kgb>");
    textarea.appendChild(t);
      desc = "When defining some computer code in HTML there is four options, " + textarea;
   } else {
    desc = 'This item needs a description.';
   }

   document.getElementById('desc').innerHTML=desc;
}

哦,顺便说一句,我对这些东西不熟悉,所以对我来说很容易。

3 个答案:

答案 0 :(得分:0)

textarea实际上是HTMLTextAreaElement类的一个实例,而不是字符串。您将不得不使用DOM操作附加它:

document.getElementById('desc').innerHTML = '';
document.getElementById('desc').appendChild(document.createTextNode(desc));    
document.getElementById('desc').appendChild(textarea);

答案 1 :(得分:0)

试试这个:

<script>
function myFunction() {
    var x = document.createElement("TEXTAREA");
    var t = document.createTextNode("you will learn.");
    x.appendChild(t);
    document.body.appendChild(x);
}
</script>

首先创建文本区域,然后将文本附加到文本区域。

答案 2 :(得分:0)

createElement返回一个节点对象,然后你可以将它附加到另一个元素,在这种情况下是鼠标悬停时的描述框:

var desc = document.getElementById('desc');
var textarea = document.createElement('textarea');
var message = document.createTextNode('When defining some computer code in HTML there is four options: <code>, <var>, <samp> and <kgb>');

function showTextarea() {
    desc.textContent = '';
    desc.appendChild(textarea);
    textarea.appendChild(message);

    desc.removeEventListener('mouseover', showTextarea);
}

desc.addEventListener('mouseover', showTextarea);

JSFiddle示例:

<强> http://jsfiddle.net/moogs/r0mch2g7/