代码之家  ›  专栏  ›  技术社区  ›  ilija veselica

替换document.all.sort.length

  •  0
  • ilija veselica  · 技术社区  · 14 年前
    function ShowSortArrows() {
                for ( var i = 0; i < document.all.sort.length; i++ ) {
                    document.all.sort[i].style.display = "none";
                    document.all.sort[i].style.visibility = "";
                }
                if (iSortByColumn!=1) {
                    if (strSortType=="ASC") {
                        document.all.sort[(iSortByColumn*2)-4].style.display="inline";
                    } else {
                        document.all.sort[(iSortByColumn*2)-3].style.display="inline";
                    }
                }
            }
    

    这在新浏览器中不受支持,所以我需要替换。

    谢谢,
    伊利亚

    2 回复  |  直到 14 年前
        1
  •  1
  •   gblazex    14 年前

    根据你的表现 sort 可能是两件事。

    1. <form> 姓名或身份证 分类
    2. 名为 分类

    解决这些情况的办法是:

    (一)

    var sort = document.getElementById("sort");
    var elements = sort.getElementsByTagName("input");
    

    (二)

    var input = document.getElementsByTagName("input");
    var elements = [];
    for (var i = 0; i < input.length; i++) {
      if (input[i].name === "sort") {
         elements.push(input[i]);
      }
    }
    

    然后 elements 数组将包含使用老式 document.all.sort

        2
  •  0
  •   Álvaro González    14 年前

    基本上取决于 sort 是(没有显示HTML)。它不是一个有效的HTML标记,而且每页似乎有多个,所以我假设它是一个类名:-?

    for ( var i=0, len=document.getElementsByClassName("sort").length; i<len; i++) {
    }