未捕获的TypeError:无法读取未定义的属性'innerHTML',该怎么办?

时间:2014-09-01 05:34:55

标签: properties undefined innerhtml typeerror

这是我的js代码,在运行项目之后,我得到错误说明了 “未捕获的TypeError:无法读取未定义的属性'innerHTML'。”

怎么办?

<code>
$(document).ready(function() {
var eventFired = function ( type ) {
    var n = $('#demo_info')[0];
    n.innerHTML += '<div>'+type+' event - '+new Date().getTime()+'</div>';
    n.scrollTop = n.scrollHeight;      
};

$('#example')
    .on( 'order.dt',  function () { eventFired( 'Order' ); } )
    .on( 'search.dt', function () { eventFired( 'Search' ); } )
    .on( 'page.dt',   function () { eventFired( 'Page' ); } )
    .dataTable();
} );
</code>

1 个答案:

答案 0 :(得分:0)

你将简单JS与jQuery混为一谈。 $('#demo_info')返回一个没有定义innerHtml的jQuery对象。在innerHtml上定义的是由document.getElementById()或其他类似函数返回的元素引用。

由于您正在使用jQuery,因此只需使用其html()方法,无论如何内部调用innerHtml。这应该可以解决问题:

var old_html = n.html();
var new_html = '<div>' + type + ' event - ' + new Date().getTime() + '</div>';
n.html(old_html + new_html);

希望这有帮助。