替换document.all.sort.length

时间:2010-11-24 10:59:12

标签: javascript sorting cross-browser

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 个答案:

答案 0 :(得分:1)

根据您展示的内容sort可以做两件事。

  1. <form>,其名称或ID为sort
  2. 一个名为sort
  3. 的表单元素的集合

    这些情况的解决方案是:

    <强>(1)

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

    <强>(2)

    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

    所获得的内容

答案 1 :(得分:0)

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

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