开发者问题收集

未捕获的类型错误:无法将属性“className”设置为 null

2011-07-18
31545

我正在使用 js 文件对表格进行分页。当我尝试单击下一页按钮时,出现错误。它只显示这样的错误“未捕获 TypeError:无法将属性‘className’设置为 null”。

这是我的代码:

    var oldPageAnchor = document.getElementById('pg'+this.currentPage);
    oldPageAnchor.className = 'pg-normal';
    this.currentPage = pageNumber;
    var newPageAnchor = document.getElementById('pg'+this.currentPage);
    newPageAnchor.className = 'pg-selected'; 
2个回答

失败是因为没有 DOM 元素具有 id 'pg'+this.currentPage 。如果这是正常行为,那么您只需将 className 调用包装在 if 块中即可:

var oldPageAnchor = document.getElementById('pg'+this.currentPage);
if (oldPageAnchor) {
   oldPageAnchor.className = 'pg-normal';
}

否则,您需要发布更多代码来向我们展示 this.currentPage 在 JavaScript 中的设置位置以及它所作用的 HTML。

Michael Berkowski
2011-07-18

oldPageAnchornewPageAnchor 为空,因为未找到具有您指定 ID 的元素。请检查 this.currentPage 是否具有您想要的值,以及您尝试查找的元素是否位于您所在的 HTML 页面上。

Nicolae Albu
2011-07-18