2012-04-20 6 views
0

다음은 내 코드입니다. 그것은 테이블을 필터링해야합니다. 그것은 IE 이외의 모든 기능을합니다. 도울 수 있니?내 자바 스크립트가 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

비표준 속성 ("pathway", "level"및 "body") 일 수 있습니까? 그렇지 않으면 어떤 IE 버전이 작동하지 않습니까? –

답변

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 –

관련 문제