0
近一个页面,吸引了一个数据驱动的网格,网格包有此代码底部...的getElementById()返回null现有对象
<script type="text/javascript">
(function(window, document, undefined) {
"use strict";
var gridColSortTypes =
["string", "string", "number", "number", "number", "number", "number", "number", "number", "number"],
gridColAlign = [];
var onColumnSort = function(newIndexOrder, columnIndex, lastColumnIndex) {
var doc = document;
var offset = (this.options.allowSelections && this.options.showSelectionColumn)?1:0;
if(columnIndex !== lastColumnIndex) {
if(lastColumnIndex > -1) {
doc.getElementById("stockHdr" + (lastColumnIndex-offset)).parentNode.style.backgroundColor = "";
}
doc.getElementById("stockHdr" + (columnIndex-offset)).parentNode.style.backgroundColor = "#f7f7f7";
}
};
...
})(this, this.document);
调查为什么指定排序列颜色更改失败发现,虽然getElementById()查询的对象存在且正在页面中运行,但在此函数内部,这些getElementById()调用返回Null。事实上,由该函数调用的所有getElementById()调用都返回Null。
为什么?
确定的DOM元素并且可触及在这段代码执行的时候?尝试在window.onload中包装你的函数。另外(无关和迂腐),为什么不只是调用你的外部闭包参数'doc'而不是创建另一个var? –