2012-03-28 2 views
0

Re-Edited : 나는 W3schools에 갔고 거기에서 무슨 일이 일어나고 있는지보기 위해 자바 스크립트 에디터 창에서 놀았다. 다음은 짧은 스크립트입니다. 자바 스크립트 : 범위를 벗어 났습니까?

<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를 사용하지 않음으로써 요소를 얻는 방법에 대한 제안하지만,이 코드를 실행하면 알 수 있듯이 난 아직도 프로세스의이 단계에서 널을 무엇을 얻을했다. 내가 볼 수있는 것과 많은 제안에서이 일을 올바르게하고 있습니다. 나는 뭔가를 놓치고 있어야한다는 것을 안다. 누구든지 그것을 볼 수 있습니까?

+0

문서로드가 끝나면'document.write()'를 사용하고 싶지 않습니다. 숨겨진 입력을 초기 마크 업의 일부로 추가하고 JS에서 값을 설정하는 것이 좋습니다. 또는 ['.createElement()'] (https://developer.mozilla.org/en/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

두 번째 코드 블록이 거의 정확합니다. 당신은 선택 요소 자체 대신에 그 (존재하지 않는) 값을 사용해야합니다

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

데모 : http://jsfiddle.net/ThiefMaster/nw3nN/

사용 가능한 jQuery이 크게 필요한 코드의 양을 줄일 수 있었다 경우

var type = $('#Type').val(); 
관련 문제