2012-03-28 8 views
0

Re-Edited: 私はW3schoolsに行き、何が起こっていたかを見るためにjavascriptのエディタウィンドウで遊びました。ここに短いスクリプトがあります。Javascript:範囲外ですか?

<html> 
<body> 
<script type="text/javascript"> 
var eType = document.getElementById("Type") 
</script> 
<select class="field select addr" id="Type"> 
     <option value="Type:L" selected="selected">Location</option> 
     <option value="Type:C">Corporate</option> 
     <option value="Type:R">Remittama</option> 
     <option value="Type:M">Mailing</option> 
     </select> 
<script type="text/javascript"> 
document.write(eType); 
</script> 
</body> 
</html> 

私はThiefMasterが.textのか.VALUEを使用していないことではなく、あなたがこのコードを実行する場合、私はまだプロセスのこの段階ではnullを得る見ることができるように要素を取得する方法について提案するものでした。私が見ることができ、多くの提案からこれを正しくやっています。私は何かが欠けているに違いないと知っている。誰もそれを見ることができますか?

+0

ドキュメントの読み込みが完了した後、 'document.write()'を使用したくない場合。隠し入力を最初のマークアップの一部として追加し、その値をJSから設定することをお勧めします。または['.createElement()'](https://developer.mozilla.org/ja/DOM/document.createElement)を使用してください。 – nnnnnn

+0

w3schoolsはそれほど大きくありません。 http://w3fools.com/をチェックしてください – DwB

答えて

0

要素を実際にページに配置する前に、要素を取得しようとしています。注文を修正し、document.writeを使用しないでください。

<html> 
<body> 

<select class="field select addr" id="Type"> 
     <option value="Type:L" selected="selected">Location</option> 
     <option value="Type:C">Corporate</option> 
     <option value="Type:R">Remittama</option> 
     <option value="Type:M">Mailing</option> 
     </select> 
<script type="text/javascript"> 
var eType = document.getElementById("Type") 
document.body.appendChild(document.createTextNode(eType)); 
</script> 
</body> 
</html> 
0

2番目のコードブロックはほぼ正しいです。あなたが利用可能jQueryを持っていた場合、あなたが大幅にコードを必要な量を減らすことができるhttp://jsfiddle.net/ThiefMaster/nw3nN/

var elem = document.getElementById("Type"); 
var type = elem.options[elem.selectedIndex].value; 

デモ:あなたはselect要素自体の代わりに、その(存在しない)値を使用する必要が

var type = $('#Type').val();