2012-04-20 7 views
0

以下は私のコードです。それは、テーブルをフィルタリングすることになっています。それはIE以外のすべてで素晴らしい機能を果たします。手伝ってくれますか?私のJavascriptはIEで動作しません

おそらく不足しているタグなどがあります。私はそれを何度も経験しており、本当に誰かの助けてください!

<script type="text/javascript"> 
function hasPath(element, cls) { 
    return (' ' + element.getAttribute('pathway')).indexOf(cls) > -1; 
} 

function hasLevel(element, cls) { 
    return (' ' + element.getAttribute('level')).indexOf(cls) > -1; 
} 

function hasBody(element, cls) { 
    return (' ' + element.getAttribute('body')).indexOf(cls) > -1; 
} 

function QualificationSearch() { 
    var imgdiv = document.getElementById("Chosen_Pathway_img"); 
    var p = document.getElementById("PathwaySelect"); 
    var pathway = p.options[p.selectedIndex].value; 
    if (pathway == "ALLPATHS") { 
     pathway = ""; 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_0.png" 
    } 
    if (pathway == "ES") { 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_1.png" 
    } 
    if (pathway == "HOUSING") { 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_2.png" 
    } 
    if (pathway == "PLAYWORK") { 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_3.png" 
    } 
    if (pathway == "SC") { 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_4.png" 
    } 
    if (pathway == "YW") { 
     imgdiv.src = "/templates/superb/images/QualChecker/pic_5.png" 
    } 
    var a = document.getElementById("AwardingBodySelect"); 
    var awardingBody = a.options[a.selectedIndex].value; 
    if (awardingBody == "ALLBODIES") { 
     awardingBody = ""; 
    } 
    var levelGroup = document.getElementsByName("LevelGroup"); 
    var chosenLevel = "" 
    for (var g = 0; g < levelGroup.length; g++) { 
     if (levelGroup[g].checked) { 
      chosenLevel += levelGroup[g].value + " "; 
     } 
    } 
    if (chosenLevel == undefined) { 
     var chosenLevel = ""; 
    } else { 
     var splitLevel = chosenLevel.split(" "); 
     var levelA = splitLevel[0]; 
     var levelB = splitLevel[1]; 
     var levelC = splitLevel[2]; 
     var levelD = splitLevel[3]; 
     if (levelA == "") { 
      levelA = "NOLVL" 
     } 
     if (levelB == "") { 
      levelB = "NOLVL" 
     } 
     if (levelC == "") { 
      levelC = "NOLVL" 
     } 
     if (levelD == "") { 
      levelD = "NOLVL" 
     } 
    } 
    var fil = document.getElementsByName("QList"); 
    for (var i = 0; i < fil.length; i++) { 
     fil.item(i).style.display = "none"; 
     if ((hasBody(fil.item(i), awardingBody) == true || awardingBody == "") && (hasPath(fil.item(i), pathway) == true || pathway == "") && ((hasLevel(fil.item(i), levelA) == true || hasLevel(fil.item(i), levelB) == true || hasLevel(fil.item(i), levelC) == true || hasLevel(fil.item(i), levelD) == true) || chosenLevel == "")) { 
      fil.item(i).style.display = "block"; 
     } 
    } 
} 
</script> 
+0

IEではどうなりますか?エラーはありますか?それは動作しますが、正しくはありませんか? – Matt

+3

@Giles IEでコンソールを確認してください。それを見つけるためにF12を押してください。これは私達が解析するためのコードの多くであり、「うまくいかない」というのはほとんど意味がない。 – Sampson

+0

IE7モードで構文エラーはありません。それはIEで間違っていますか? – Snuffleupagus

答えて

0

セミコロンを確認してください。 IEはFFよりもはるかに厳しいものです。

+0

私はIEにMozillaと同じルールがあると思いましたか? –

+0

私はASI頭字語のGGGに精通していません。また、非標準属性に関するあなたのコメントもおそらく問題です。 IEの非標準的な属性が、私はそれらを使用していると仮定することはできません。 –

+0

ああ、ASI ... http://stackoverflow.com/questions/2846283/what-are-the-rules-for-javascripts-automatic-semicolon -insertion –

関連する問題