0

javascriptを使用して、カスタムタグをループし、ボタンを押さなくても結果を表示するにはどうすればよいですか?

私のJavaScript:

function a(){           
    var m=document.getElementsByTagName('myselect');
    for (var i = 0; i<m.length; i++)
         document.getElementById('divid').innerHTML  = m[i].value;                                      
}

私のhtml:

  <myselect>
     <option> a </option>
     <option> b </option>
     <option> c </option>
   </myselect>

現在、カスタムタグを取得できず、カスタム<select>タグの代わりにタグを定義しない限り、情報を表示できません。それでも、入力ボタンを押す必要があります。さらに、JavaScriptはすべての要素をループしませんが、現在選択されている要素をループします。

PS私がmyselectを使用している理由は、HTMLにドロップダウンを表示したくないからです。情報を入手する他の方法はありますか?

4

2 に答える 2

1

コメントしたように、結果は有効なHTMLではなくなるため、カスタムタグを使用しないでください。

次に、現在選択されている要素を提供するように見えるm[i].value代わりに使用します。m.options[i].value

第三に、情報を取得することの意味はわかりませんが、HTMLドキュメントに情報を保持しようとしているようです。それを行うためのより良い方法は、JavaScript配列に保存することです。

var values = ['a', 'b', 'c'];

あなたが本当にあなたの情報がHTMLDOMの一部である必要があり、それが選択である必要があるなら、あなたは次のようなものを思い付くことができます

<select style="display: none;"> etc...

それは非常に奇妙なことですが、誰もそれを見ることができません。

于 2013-02-15T19:37:15.063 に答える
0

myselectタグを通常のselectタグとして定義し、次のようなIDを付けます。

<select id="myselect">

次に、bodyタグで、onload属性を使用して関数を呼び出します。

<body onload="a()">

次に、JavaScriptでgetElementByTagNameをgetElementByIdに次のように変更します。

ar m=document.getElementsById('myselect');

それがあなたのために働くかどうか見てください。私はそれをテストしませんでしたが、それがその要点です。jQueryの使用もお勧めします

于 2013-02-15T19:30:24.120 に答える