0

누구나 getElementsByTagName에 대한 세부 정보를 제게 설명하고 구체적으로 getElementsByTagName에 의해 반환 된 노드 목록을 반복하는 방법을 설명해 주실 수 있습니까?getElementsByTagName 사용에 대한 조언이 필요합니다.

다음은 내 간단한 스크립트로, 경고 윈도우에 선택한 인덱스를 표시하지만 getElementsByTagName을 사용합니다. 내가 선택한 옵션 값을 얻기 위해 getElementsByTagName를 사용하는 아주 좋은 해결책이 될하지 않을 수 있습니다 알고 있지만 여전히 나는 여기가 나를 도울 수 있기 때문에 더 나은이

<script language="JavaScript"> 
<!-- 
    function process(){ 
    var a = document.getElementById('mySelect'); 
    var res = a.options[a.selectedIndex].text; 

    alert(res); 
    } 
//--> 
</script> 

을 어떻게 작동하는지 이해하는 getElementsByTagName를 사용하려면 그리고 것 하는 HTML 조각은 :

<body> 
<select name=""id="mySelect" onchange="process()"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
</select> 

그래서 내 질문은 :

는 사람이 어떻게 생을 말해 수 이 스크립트의 작업은 getElementById 대신 getElementsByTagName을 사용합니까?

감사합니다.

답변

0

getElementById는 ID가 고유해야하기 때문에 단일 요소를 반환하므로 주어진 ID가 있으면 반환 할 요소가 하나만 있어야합니다.

getElementsByTagName은 주어진 태그 이름을 가진 모든 요소를 ​​가진 NodeList 객체를 반환합니다. 에 getElementsByTag 이름을 사용하여 옵션

function process(){ 
    var sels = document.getElementsByTagName("select"); 
    for(var i=0; i<sels.length;i++){ 
     var opts = sels[i].getElementsByTagName("option"); 
     for(var j=0;j<opts.length;j++){ 
      if(opts[j].selected){ 
       alert(opts[j].innerHTML); 
       break; 
      } 
     } 
    } 
} 

를 얻기 위해 선택 얻을에서 getElementById를 사용하고 getElementsByTagName 선택 얻을 getElementsByTagName을 사용하여 옵션

function process(){ 
    var sel = document.getElementById("mySelect"); 
    var opts = sel.getElementsByTagName("option"); 
    for(var i=0;i<opts.length;i++){ 
     if(opts[i].selected){ 
      alert(opts[i].innerHTML); 
      break; 
     } 
    } 
} 

Example

을 읽을 수 및 getElementsByTagName

<script language="JavaScript"> 
<!-- 
    function process(){ 
    var a = document.getElementsByTagName('select'); 
    var res = a[0].options[a[0].selectedIndex].text; 

    alert(res); 
    } 
//--> 
</script> 
+0

기술적으로 getElementsByTagName은 배열과 유사한 객체 인 NodeList 객체를 반환합니다. '.length' 속성을 가지며 인덱싱되지만'.pop()'와 같은 다른 배열 메서드는 작동하지 않습니다. https://developer.mozilla.org/En/DOM/NodeList – Blazemonger

+0

이를 반영하여 우수 포인트가 업데이트됩니다. – Jrod

3

select와 optio를 얻는다. ns 객체

function process(){ 
    var sels = document.getElementsByTagName("select"); 
    for(var i=0; i<sels.length;i++){ 
     var sel = sels[i]; 
     alert(sel.options[sel.selectedIndex].text); 
    } 
} 
관련 문제