簡體   English   中英

this.id不工作在ie

[英]this.id not working in ie

我一直在使用JavaScript組合手風琴式的左導航,我遇到了一個問題,下面的代碼在Chrome和Firefox中運行,但在IE中卻不行。

function navClick(clickedDD){
    var numDD = document.getElementsByClassName('navDropdown');
    var numArrow = document.getElementsByClassName('navUnfolded');
    var selectedDD = document.getElementById('dd0' + clickedDD);
    var arrow = document.getElementById('arrow0' + clickedDD);
    if (selectedDD.style.display == 'none') {
        for (var i = numDD.length - 1; i >= 0; i--) {
            numDD[i].style.display = 'none';
        }
    }
    if (arrow.className == 'navFolded') {
        for (var i = numArrow.length - 1; i >= 0; i--) {
            numArrow[i].className = 'navFolded';
        }
    }
    if (selectedDD.style.display == 'none') {
        selectedDD.style.display = 'block';
        arrow.className = 'navUnfolded';
    } else {
        selectedDD.style.display = 'none';
        arrow.className = 'navFolded';
    }
}

我不肯定是什么讓它無法正常運行,但我懷疑這是我在onclick中使用的“this.id”。

<div id="1" onclick="navClick(this.id);">Content</div>

我對JavaScript比較陌生,如果這有助於了解。 基本上,此函數首先查看是否顯示單擊的div,如果沒有,則在繼續之前將所有div的顯示設置為none。 如果顯示,它什么都不做,因為下一位將處理它。 對於具有變化的箭頭圖像的div,之后有類似的規則。 然后,如果沒有顯示div,則將其設置為“阻止”,否則將其設置為“無”,這允許我打開和關閉單個菜單div而無需打開/關閉其他菜單。

我正在使用onclick函數收集的id來控制具有不同id的div,可以在函數頂部的變量底部看到。 也許這就是IE變得敏感的地方。

任何幫助表示贊賞。

在您的元素上,嘗試將ID放在引號中:

<div id = '1' onClick="navClick(this.id);">

您還可以嘗試使用javascript的“警報”功能來查找IE中的數據:

alert(selectedDD); 

IE8或更低版本不支持 getElementsByClassName

如果您不想使用完整的庫,可以嘗試使用Jonathan Snook的 IE8及以下兼容性方法。

您在<div id="1" ..不是有效的:

ID和NAME令牌必須以字母([A-Za-z])開頭,后面可以跟任意數量的字母,數字([0-9]),連字符(“ - ”),下划線(“_”) ,冒號(“:”)和句號(“。”)。

所以嘗試將其更改為有效的(例如#a1 ),因為這可能是您的問題的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM