2010-11-24 18 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"; 
       } 
      } 
     } 

Ceci n'est pas pris en charge dans les nouveaux navigateurs, j'ai donc besoin d'être remplacé.remplacement de document.all.sort.length

Merci,
Ilija

Répondre

1

Basé sur ce que vous avez montré sort peut être 2 choses.

  1. un <form> avec le nom ou l'identifiant sort
  2. une collection d'éléments de formulaire nommé sort

Les solutions à ces situations sont les suivantes:

(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]); 
    } 
} 

Ensuite, le tableau elements contiendra ce que vous obtiendriez avec l'ancienne document.all.sort

0

Cela dépend essentiellement de ce que sort est (pas HTML représenté). Ce n'est pas un tag HTML valide et il semble y en avoir plus d'un par page donc je suppose que c'est un nom de classe: -?

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

Il est tout à fait possible que 'document.all.sort' se réfère à une forme nommée" sort ", auquel cas' document.all.sort [i] 'fait référence aux entrées du formulaire. Dans tous les cas, nous devons voir le code HTML original afin que nous puissions vous aider. – Zecc