2010-11-24 48 views
0
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"; 
       } 
      } 
     } 

這在新的瀏覽器中不受支持,所以我需要更換。替換爲document.all.sort.length

感謝,
伊利亞·

回答

1

根據你的顯示sort可以是2件事。

  1. 一個<form>具有名稱或ID sort
  2. 形式元素的集合命名sort

針對這些情況的解決方案是:

(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

0

它主要取決於什麼sort是(不顯示HTML)。這不是一個有效的HTML標籤,每個頁面看起來不止一個,所以我認爲它是一個類名: - ?

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

這很可能是`document.all.sort`指的是一個名爲表「排序「,在這種情況下,document.all.sort [i]指的是表單的輸入。無論如何,我們需要查看原始HTML,以便我們可以爲您提供幫助。 – Zecc 2010-11-24 11:20:27