我们做了个本地排序 
在一个表格里面 我选中几行 然后进行排序 结果选中的被取消了 就ie6 不支持 其它的都行 
各位看看 是哪里的原因 

解决方案 »

  1.   

    这是页面选中的javascript  
       //是否有选中的记录
        function hasChecked()
        {
        var checkArray = pageform.indexID;
        if(checkArray==null||checkArray==undefined)
        {
        return ;
        }
        if(checkArray.length)
        {
        for(var i=0;i<checkArray.length;i++)
        {
        if(checkArray[i].checked)
        {
        return true;
        }
        }
        return false;
        }
        else
        {
        return checkArray.checked;
        }
        }     
        
        
        function checkboxChange()
    {
    if(pageform.indexID)
    {
    var allChecked = true;
    if(pageform.indexID.length)
    {
    for(var i = 0; i < pageform.indexID.length; i++)
    {
    if(pageform.indexID[i].checked == false)
    {
    allChecked = false;
    break;
    }
    }
    }
    else
    {
    allChecked = pageform.indexID.checked;
    }
    pageform.checkboxCtrl.checked = allChecked;
    }
    } //单独选checkbox 对全选按钮的影响
    function allCheckBoxJudge()
    {
    if(pageform.indexID)
    {
    var allChecked = false;
    if(pageform.indexID.length)
    {
    for(var i = 0; i < pageform.indexID.length; i++)
    {
    if(pageform.indexID[i].checked == true)
    {
    allChecked = true;
    break;
    }
    }
    }
    else
    {
    allChecked = pageform.indexID.checked;
    }
    pageform.checkboxCtrl.checked = allChecked;
    }
    }     //全选按钮控制
    function checkboxCtrlChange()
    {
         if(pageform.checkboxCtrl.checked)
    {
    if(pageform.indexID)
    {
    if(pageform.indexID.length)
    {
    for(var i = 0; i < pageform.indexID.length; i++)
    {
    pageform.indexID[i].checked = true;
    }
    }
    else
    {
    pageform.indexID.checked = true;
    }
    }
    }
    else
    {
    if(pageform.indexID)
    {
    if(pageform.indexID.length)
    {
    for(var i = 0; i < pageform.indexID.length; i++)
    {
    pageform.indexID[i].checked = false;
    }
    }
    else
    {
    pageform.indexID.checked = false;
    }
    }
    }
        }
    这是本地排序的js
    var sort_sCell = "";
    function Sort_SortableTable(oTable, oSortTypes, sCellcon) {
    sort_sCell = sCellcon.split(",");
    this.element = oTable;
    this.tHead = oTable.tHead;
    this.tBody = oTable.tBodies[0];
    var eFlag = this.tBody.rows[0].cells.length;
    if(eFlag<=1){
    return;
    }
    this.document = oTable.ownerDocument || oTable.document;
    this.sortColumn = null;
    this.descending = null;
    var oThis = this;
    this._headerOnclick = function (e) {
    oThis.headerOnclick(e);
    };
    var win = this.document.defaultView || this.document.parentWindow;
    this._onunload = function () {
    oThis.destroy();
    };
    if (win && typeof win.attachEvent != "undefined") {
    win.attachEvent("onunload", this._onunload);
    }
    this.initHeader(oSortTypes || []);
    }
    Sort_SortableTable.gecko = navigator.product == "Gecko";
    Sort_SortableTable.msie = /msie/i.test(navigator.userAgent);
    Sort_SortableTable.removeBeforeSort = Sort_SortableTable.gecko;
    Sort_SortableTable.prototype.onsort = function () {
    };
    Sort_SortableTable.prototype.initHeader = function (oSortTypes) {
    var cells = this.tHead.rows[0].cells;
    var l = cells.length;
    var img, c;
    var SortTypes = oSortTypes.split(",");
    for (var i = 0; i < l; i++) {
    for (j = 0; j < sort_sCell.length; j++) {
    if (sort_sCell[j] == cells[i].cellIndex + 1) {
    c = cells[i];
    img = this.document.createElement("IMG");
    img.src = "images/blank.gif";
    c.appendChild(img);
    if (SortTypes[j] != null) {
    c._sortType = SortTypes[j];
    }
    if (typeof c.addEventListener != "undefined") {
    c.addEventListener("click", this._headerOnclick, false);
    } else {
    if (typeof c.attachEvent != "undefined") {
    c.attachEvent("onclick", this._headerOnclick);
    }
    }
    }
    }
    }
    };
    Sort_SortableTable.prototype.uninitHeader = function () {
    var cells = this.tHead.rows[0].cells;
    var l = cells.length;
    var c;
    for (var i = 0; i < l; i++) {
    for (j = 0; j < sort_sCell.length; j++) {
    if (sort_sCell[j] == cells[i].cellIndex + 1) {
    c = cells[i];
    c.removeChild(c.lastChild);
    if (typeof c.removeEventListener != "undefined") {
    c.removeEventListener("click", this._headerOnclick, false);
    } else {
    if (typeof c.detachEvent != "undefined") {
    c.detachEvent("onclick", this._headerOnclick);
    }
    }
    }
    }
    }
    };
    Sort_SortableTable.prototype.updateHeaderArrows = function () {
    var cells = this.tHead.rows[0].cells;
    var l = cells.length;
    var img;
    for (var i = 0; i < l; i++) {
    for (j = 0; j < sort_sCell.length; j++) {
    if (sort_sCell[j] == cells[i].cellIndex + 1) {
    //alert("123");
    img = cells[i].lastChild;
    if (i == this.sortColumn) {
    img.className = "sort-arrow " + (this.descending ? "descending" : "ascending");
    } else {
    img.className = "sort-arrow";
    }
    }
    }
    }
    };
    Sort_SortableTable.prototype.headerOnclick = function (e) {
    var el = e.target || e.srcElement;
    while (el.tagName != "TD") {
    el = el.parentNode;
    }
    this.sort(Sort_SortableTable.msie ? Sort_SortableTable.getCellIndex(el) : el.cellIndex);
    };
    Sort_SortableTable.getCellIndex = function (oTd) {
    var cells = oTd.parentNode.childNodes;
    var l = cells.length;
    var i;
    for (i = 0; cells[i] != oTd && i < l; i++) {
    }
    return i;
    };
    Sort_SortableTable.prototype.getSortType = function (nColumn) {
    var cell = this.tHead.rows[0].cells[nColumn];
    var val = cell._sortType;
    if (val != "") {
    return val;
    }
    return "String";
    };
    Sort_SortableTable.prototype.sort = function (nColumn, bDescending, sSortType) {
    if (sSortType == null) {
    sSortType = this.getSortType(nColumn);
    }
    if (sSortType == "None") {
    return;
    }
    if (bDescending == null) {
    if (this.sortColumn != nColumn) {
    this.descending = true;
    } else {
    this.descending = !this.descending;
    }
    }
    this.sortColumn = nColumn;
    if (typeof this.onbeforesort == "function") {
    this.onbeforesort();
    }
    var f = this.getSortFunction(sSortType, nColumn);
    var a = this.getCache(sSortType, nColumn);
    var l = a.length;
    var tBody = this.tBody;
    var sort_isSortLastRow = document.getElementById("sort_isSortLastRow").value;
    var lastRow = tBody.rows[tBody.rows.length-1];
    a.sort(f);
    if (this.descending) {
    a.reverse();
    }
    if (Sort_SortableTable.removeBeforeSort) {
    var nextSibling = tBody.nextSibling;
    var p = tBody.parentNode;
    p.removeChild(tBody);
    }
    for (var i = 0; i < l; i++) {
    tBody.appendChild(a[i].element);
    }
    if(sort_isSortLastRow=="false"){
    tBody.appendChild(lastRow);
    }
    if (Sort_SortableTable.removeBeforeSort) {
    p.insertBefore(tBody, nextSibling);
    }
    this.updateHeaderArrows();
    this.destroyCache(a);
    if (typeof this.onsort == "function") {
    this.onsort();
    }
    };
    Sort_SortableTable.prototype.asyncSort = function (nColumn, bDescending, sSortType) {
    var oThis = this;
    this._asyncsort = function () {
    oThis.sort(nColumn, bDescending, sSortType);
    };
    window.setTimeout(this._asyncsort, 1);
    };
    Sort_SortableTable.prototype.getCache = function (sType, nColumn) {
    var rows = this.tBody.rows;
    var l = rows.length;
    var sort_isSortLastRow = document.getElementById("sort_isSortLastRow").value;
    if(sort_isSortLastRow=="false"){
    l = l-1;
    }
    var a = new Array(l);
    var r;
    for (var i = 0; i < l; i++) {
    r = rows[i];
    a[i] = {value:this.getRowValue(r, sType, nColumn), element:r};
    }
    return a;
    };
    Sort_SortableTable.prototype.destroyCache = function (oArray) {
    var l = oArray.length;
    for (var i = 0; i < l; i++) {
    oArray[i].value = null;
    oArray[i].element = null;
    oArray[i] = null;
    }
    };
    Sort_SortableTable.prototype.getRowValue = function (oRow, sType, nColumn) {
    var s;
    var c = oRow.cells[nColumn];
    if (typeof c.innerText != "undefined") {
    s = c.innerText;
    } else {
    s = Sort_SortableTable.getInnerText(c);
    }
    if(s==null||s==""){
    s="";
    if(sType=="Number"){
    s="0";
    }
    }
    var sO = "";
    if(sType=="Number"&&s.indexOf(",")!=-1){
    var sTemp = s.split(",");
       var sLength = sTemp.length;
       for(var k=0;k<sLength;k++){
       sO = sO+sTemp[k];
       }
       s = sO;
    }
    return this.getValueFromString(s, sType);
    };
    Sort_SortableTable.getInnerText = function (oNode) {
    var s = "";
    var cs = oNode.childNodes;
    var l = cs.length;
    for (var i = 0; i < l; i++) {
    switch (cs[i].nodeType) {
      case 1:
    s += Sort_SortableTable.getInnerText(cs[i]);
    break;
      case 3:
    s += cs[i].nodeValue;
    break;
    }
    }
    return s;
    };
    Sort_SortableTable.prototype.getValueFromString = function (sText, sType) {
    switch (sType) {
      case "Number":
    return Number(sText);
      case "CaseInsensitiveString":
    return sText.toUpperCase();
      case "Date":
    var parts = sText.split("-");
    var d = new Date(0);
    d.setFullYear(parts[0]);
    d.setDate(parts[2]);
    d.setMonth(parts[1] - 1);
    return d.valueOf();
    }
    return sText;
    };
    Sort_SortableTable.prototype.getSortFunction = function (sType, nColumn) {
    return function compare(n1, n2) {
    if (n1.value < n2.value) {
    return -1;
    }
    if (n2.value < n1.value) {
    return 1;
    }
    return 0;
    };
    };
    Sort_SortableTable.prototype.destroy = function () {
    this.uninitHeader();
    var win = this.document.parentWindow;
    if (win && typeof win.detachEvent != "undefined") { // only IE needs this
    win.detachEvent("onunload", this._onunload);
    }
    this._onunload = null;
    this.element = null;
    this.tHead = null;
    this.tBody = null;
    this.document = null;
    this._headerOnclick = null;
    this.sortTypes = null;
    this._asyncsort = null;
    this.onsort = null;
    };