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>

HTML スニペットは次のとおりです。

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

だから私の質問は:

getElementsByTagNameの代わりにこのスクリプトを機能させる方法を誰か教えてもらえますgetElementByIdか?

どうもありがとう!

4

2 に答える 2

3

getElementByIdを使用してselectを取得し、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;
        }
    }
}

getElementsByTagNameを使用してselectを取得し、getElementsByTagNameを使用してオプションを取得します

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;
            }
        }
    }
}

getElementsByTagnameを使用してselectおよびoptionsオブジェクトを取得します

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 );
    }
}
于 2011-10-12T14:46:50.370 に答える
0

getElementById は単一の要素を返します。これは、ID が一意であると想定されているため、指定された ID が存在する場合に返される要素は 1 つだけである必要があるためです。

getElementsByTagName は、指定されたタグ名を持つすべての要素を含む NodeList オブジェクトを返します。

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

     alert(res);
   }
//-->
</script>
于 2011-10-12T14:42:14.777 に答える