2011-11-10 14 views
0

ここではスタックオーバーフローに関する豊富な調査を行いましたが、同じ問題に遭遇したユーザーの多くの提案を試しましたしかし、運がなかった。Firefox(javascriptコンソール)でdiv idが定義されていません - IE&ChromeのOK

私はジャバスクリプトのこの作品があります。それが呼び出されたのはここ

<script type="text/javascript"> 
function ActivateTab(strTabName){ 
    switch (strTabName){ 
     case "EmployeeInfo": 
      divEmployeeInfo.className = "panelActive"; 
      divCoverageTypes.className = "panelHidden"; 
     break; 
     case "CoverageTypes": 
      divEmployeeInfo.className = "panelHidden"; 
      divCoverageTypes.className = "panelActive"; 

     break; 
    } 
} 

です:対応するHTMLで

<table width="100%" border="0" cellSpacing="0" cellPadding="2"> 
<tr> 
    <td align="center" id="tdEmployeeInfo" onClick="ActivateTab('EmployeeInfo')" class="tabActive">Employee Information &amp; Demographic Changes </td> 
    <td align="center" id="tdCoverageTypes" onClick="ActivateTab('CoverageTypes')" class="tabItem"><p>Change, Add or Delete Coverage</p></td> 
    <td align="center" id="tdSpouseOrPartner" onClick="ActivateTab('SpouseOrPartner')" class="tabItem">Change, Add or Delete Spouse or Domestic Partner</td> 
    <td align="center" id="tdDependent" onClick="ActivateTab('Dependent')" class="tabItem">Change, Add or Delete Dependent</td> 
</tr> 

<div id="divEmployeeInfo" class="panelActive"> 
<input type="hidden" id="SectionTab_EmployeeInfo" name="SectionTab_EmployeeInfo" value="Employee Information"> 

誰も秒の目を貸すことができますか?

答えて

5

要素IDをJavascript変数として使用しようとしています。
これは非標準のIE拡張で、実際のブラウザでは機能しません。代わりに、与えられたIDでDOM要素を取得するためにdocument.getElementByIdを呼び出し

:あなたが作る場合

var divEmployeeInfo = null; 
var divCoverageTypes = null; 

function Initialize() { 
    if (divEmployeeInfo == null) { 
     divEmployeeInfo = document.getElementById("divEmployeeInfo"); 
     divCoverageTypes = document.getElementById("divCoverageTypes"); 
    } 
} 

function ActivateTab(tab) { 
    Initialize(); 

    divEmployeeInfo.className = GetClass("EmployeeInfo", tab); 
    divCoverageTypes.className = GetClass("CoverageTypes", tab); 
} 

function GetClass(key, selected) { 
    return key == selected ? "panelActive" : "panelHidden"; 
} 
1

SLaksに追加するには、あなたが読みやすくするために、あなたのjsを更新することができ答えますjQueryを使用すると、次のような要素クラスを変更することができます。

クリックの操作を次のようにHTMLから外します:

$('#tdEmployeeInfo').click(function() { 
    $('#divEmployeeInfo').addClass('panelActive'); 
    $('#divCoverageTypes').removeClass('panelActive'); 
}); 
0

document.getElementById("divEmployeeInfo").className = "panelActive"; 
関連する問題