2010-02-24 7 views
2

Mon code ci-dessous fonctionne dans Firefox parfaitement ... mais pas dans Safari. Lorsque j'utilise le débogage Safari, il dit simplement il y a une erreur d'analyse, juste après la première accolade d'ouverture {Safari déconcertant Javascript Issue

function setVals4(class,val) 
{ 
    var array = document.getElementsByTagName("select"); 

    for (var g = 0; g < array.length; g++) 
    { 
     sel = array[g] 
     //sel = document.myform.sel[g]; 

     for (i=0; i<sel.options.length; i++) 
     { 
      //alert(sel.options[i].value) 

      if (sel.className == class) 
      { 
       if (sel.options[i].value == val) 
       { 
        sel.selectedIndex = i; 
       } 
      }  
     }  
    } 
} 

Quelqu'un peut-il comprendre pourquoi? Aidez-moi!

Répondre

4

classclass est un mot réservé en JavaScript, même s'il n'est pas utilisé pour quoi que ce soit (il est répertorié comme un "futur mot réservé" dans le ECMA spec). Si vous changez le nom de votre paramètre à clazz (ce qui est la chose habituelle) ou foo ou quelque chose, cela devrait régler le problème.

(Il y a aussi un manquant après sel = array[g], mais c'est correct, la langue permet semicolon insertion à ce moment-là. Mais, mieux les comprendre, surtout si vous voulez jamais minify/pack/compress votre code vers le bas de gamme

+0

Parfait. Je ne peux pas croire que je n'ai pas vu ça ... merci! – Fearghal

+0

:-) Content de vous aider. –