getItemAtIndex不是函数错误

时间:2012-08-01 09:23:04

标签: javascript xul

我对xul和javascript有一个奇怪的问题。我有一个包含多行数据的树。我必须选择有效列设置为"NO"的每一行,并为整行更改background color

我的javascript代码是这样的:

function markInactive() {

    var tree = document.getElementById('bsTree');
    var treerow;

    for (var i = 0; i < tree.view.rowCount; i++) {

        if (tree.view.getCellText(i, tree.columns.getNamedColumn("bsActive")) == "NO") {

            treerow = tree.view.getItemAtIndex(i);
            treerow.firstChild.setAttribute('style', 'background: #FF0000');

        }  
    }  
}

现在奇怪的部分。这不起作用,因为我的jsconsole返回错误getItemAtIndex is not a function。我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

我通过构建自己的自定义树视图并编辑树的getCellProperties方法来修复此问题

getCellProperties: function (row, col, props) {

    if(tree.view.getCellText(row, tree.columns.getNamedColumn("bsActive")) == "NO"){

          var aserv=Components.classes["@mozilla.org/atom-service;1"].
                    getService(Components.interfaces.nsIAtomService);

          props.AppendElement(aserv.getAtom("makeItRed"));

    }
}

和CSS:

treechildren::-moz-tree-cell(makeItRed){
     background-color: #ff0000;
}