2013-09-30 2 views
0

earler이 코드는 잘 작동하지만 갑자기 작동을 멈추는 지 모르겠다. 코드 위치를 변경 한 후.javascript 일부 작동을 멈추는 방법

give error : 
- Uncaught TypeError: Cannot read property 'options' of undefined (in chrome) 
- no element found (in firefox) 

var inputs = document.getElementsByTagName("select"); //get array of select tag 

var sSrnti = inputs[0].options[inputs[0].selectedIndex].value; //get selected value of first list 

var sType = inputs[1].options[inputs[1].selectedIndex].value;//get selected value of second list 

var sStatus = inputs[2].options[inputs[2].selectedIndex].value;//get selected value of third list 

좀 도와주세요 .. 감사

+0

어디에서 코드를 이동 했습니까? 어디에 넣었습니까? – jeff

+0

'inputs [0]','inputs [1]','inputs [2]'중 적어도 하나는'null '을 나타냅니다. 그 요소가 코드가 실행되는 시간이나 컨텍스트에서 DOM에 존재하지 않는다고 추측합니다. –

+0

내 마음에 제일 먼저 오는 것은 스크립트를 실제 HTML 위에 올려 놓은 것입니다. 이렇게하면 dom 트리가로드되기 전에 실행되어''document.getElementsByTagName ("select");''에 대해''undefined ''를 반환하여 다음 줄에서 오류가 발생합니다. – Kippie

답변

0

나는

"after changing location for code" 

당신은이에 대한 자세한 명확해야한다가 무슨 뜻인지 이해가 안 ... 다음을 시도하십시오. 그러나 kippie가 위에서 언급했듯이 js 파일을 html 위에 호출하는 스크립트 태그를 가장 많이 옮겼습니다. 이 작업을 완료하고 문제가 나에게 어떤 코드 당신이 이동 어디 당신이에 이동 알려, 아직 거기 경우 다음은 HTML

<!DOCTYPE html> 
<html> 
    <head> 
     <title>some title</title> 
     <!-- add all refs to css files here taking note of the cascading property of css--> 
     <link href="..." rel="stylesheet"> 
    </head> 

    <body> 

    </body> 
    <!-- add all calls to js files here, so you can be sure dom is loaded--> 
    <script src="somefile.js"></script> 
</html> 

에 권장되는 레이아웃입니다. 크롬 콘솔을 사용하여 코드를 유지할 수도 있습니다. 예컨대

press control + shift + j on your keyboard 

하고는 우리가 뭐가 잘못 볼 수있다, 즉 일하는 것이 있는지 확인하기 위해 동일한 명령 예를 들어 document.getElementById를 ('# ID를')를 사용합니다.

행운을 빈다.

+0

정말 도움이됩니다. 덕분에 .. – Piyush

+0

도움을 주셔서 감사합니다. :) –

0

당신은 다음과 같습니다 select 요소가있는 경우 :

<select id="ddlViewBy"> 
<option value="1">test1</option> 
<option value="2" selected="selected">test2</option> 
<option value="3">test3</option> 
</select> 

이 코드를 실행 :

var e = document.getElementById("ddlViewBy"); 
var strUser = e.options[e.selectedIndex].value; 

가에는 strUser을 만들 것을 2. 실제로 원하는 것이 test2라면, 다음과 같이하십시오 :

var e = document.getElementById("ddlViewBy"); 
var strUser = e.options[e.selectedIndex].text; 
0

HTML에 적어도 세 개의 select 요소가 없거나 DOM이로드되기 전에 JavaScript가 실행 중입니다.

<script type="text/javascript"> 
    window.onload = function() { 
    // Your JavaScript here... 
    } 
</script> 
관련 문제