尝试创建新元素时出错

时间:2016-02-09 09:51:06

标签: javascript html

我使用以下代码,当我执行appendChild

时出错
$('#tra').on('click', function() {
    transpile(source.val())

// ...
var display = $('#display');
diff.forEach(function(part) {

 var span = document.createElement('span');
        span.style.color = color;
        span.appendChild(document
            .createTextNode(part.value));
        display.appendChild(span);

在上一段代码中我收到错误:

  

main.js:42 Uncaught TypeError:display.appendChild不是函数,它可以是什么?

index.html中的

我的显示如下

2 个答案:

答案 0 :(得分:2)

您的display变量是一个jQuery对象。它有一个.append()方法,可以满足你的需要。

display.append(span);

如果您想使用JavaScript DOM函数.appendChild(),则需要首先从显示中提取DOM元素:

display.get(0).appendChild(span);

答案 1 :(得分:2)

首先,检查文档(DOM)中是否存在#display元素。

其次,jQuery中没有appendChild方法,所以你应该使用:

display.append(span)

或者

$(span).appendTo(display);

否则,如果你想使用appendChild,你可以使用:

display[0].appendChild(span);

或者使用$.get方法:

display.get(0).appendChild(span);