2012-02-22 6 views
0

これは、お支払い方法を選択するためのスクリプトです。これは、IEで動作しますが、私はFFでそれを実行すると、このエラーで停止:あなたはhtmlファイルにこのコードを貼り付け、問題が見ることができます Error: document.getElementById("tdeposit").childNodes[0].childNodes[0] is undefined.なぜfirefoxは要素ノードとIEを取得できないのですか?

:私はので、プライバシーのいくつかのウェブサイトのアドレスを削除した

を問題は、画像へのリンクは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Test</title> 
<style> 
#tdeposit { 
width:550px; 
margin:10px auto; 
font-family:Arial; 
font-size:13px; 
font-weight:bold; 
letter-spacing:1px; 
color:#444; 
text-align:center; 
} 
</style> 
</head> 

<body> 
<script> 
function methodis(method){ 
if(method=='wm'){ 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[1].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[2].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[3].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[4].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[1].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[2].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[3].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[4].style.visibility='hidden'; 
document.deposit.method[0].checked=true; 
} 
if(method=='lr'){ 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[1].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[2].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[3].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[0].childNodes[4].style.visibility='hidden'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[1].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[2].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[3].style.visibility='visible'; 
document.getElementById('tdeposit').childNodes[0].childNodes[1].childNodes[4].style.visibility='visible'; 
document.deposit.method[1].checked=true; 
} 
return 0; 
} 

function calculate(ob,per){ 
    if(ob.value.length<8){ 
document.getElementById(ob.name).innerHTML = '$ '+(per*ob.value).toFixed(2); 
    }else{ 
document.getElementById(ob.name).innerHTML = '$ 0'; 
    } 
} 
</script> 
<form name='deposit' action='deposit.php'> 
    <table id='tdeposit' > 
    <tbody> 
     <tr> 
     <td><input type='radio' name='method' value='wm' style='width:20px; height:50px' /> 
      <img src='http://www.xxxxxxxxx.com/images/webmoney.png' onclick='methodis("wm");' /></td> 
     <td style='width:110px; visibility: hidden;'> $ 
      <input style='margin:5px; height:20px; width:50px; text-align:center' type='text' name='wmht' onkeyup='calculate(this,0.98);' /> 
      WM</td> 
     <td style='width:25px; visibility: hidden;'><img src='http://www.xxxxxxxxx.com/images/convert.gif' /></td> 
     <td style='width:100px; visibility: hidden;' ><span id='wmht' style='color:#060'>$ 0.0</span> HT</td> 
     <td style='width:100px; visibility: hidden;'><input type='submit' value=' Deposit ' /> 
     </tr> 
     <tr style='border-top:solid 1px #999'> 
     <td><input type='radio' name='method' value='lr' style='width:20px; height:50px' /> 
      <img src='http://www.xxxxxxxxx.com/images/libertyreserve.png' onclick='methodis("lr");'/></td> 
     <td style='visibility: hidden;'> $ 
      <input style='margin:5px; height:20px; width:50px; text-align:center' type='text' name='lrht' onkeyup='calculate(this,0.95);' /> 
      LR</td> 
     <td style='visibility: hidden;'><img src='http://www.xxxxxxxxx.com/images/convert.gif' /></td> 
     <td style='visibility: hidden;'><span id='lrht' style='color:#060'>$ 0.0 </span> HT</td> 
     <td style='visibility: hidden;'><input type='submit' value=' Deposit ' /> 
     </tr> 
    </tbody> 
    </table> 
</form> 
</body> 
</html>  
+1

地球上で何が... –

+2

そのコードは私が誰かを撃ってみたいと思う。 – ThiefMaster

+0

line [aka 'document.getElementById( 'tdeposit')。childNodes [0] .childNodes [0]']の後に改行されたコードがある場合は、それを削除する方法を見つけようとする必要があります。ブラウザがそのノードの時間と時刻を再び調べなければならないので、同じコードが繰り返し実行されると効率が悪いです。 – epascarello

答えて

1

document.getElementById('tdeposit').childNodes[0]<table>タグに続く空白のためTextNodeを参照を変更しました。おそらく、IEはそれを無視していますが、他のブラウザは無視しています。 childNodesの代わりにchildrenゲッターを使用してください。

+0

...しかし、真剣に、あなたのコードを再考する必要があります。 –

+0

おかげで、これは素晴らしかった –

+0

アレックス、私は再考しています。コードの一部を変更する必要がありますか? –