1

私は JavaScript にかなり慣れていないので、自分でこれを解決しようとしましたが、いくつかのオブジェクトとプロパティは初めてです。以下のコードは、ドキュメント内の「すべて」の「オプション」テキストを変更するために機能すると思いますが、空のオプションタグのテキスト値のみを変更する必要があります。<option></option>、に<option>Choose One</option>。ページはaspによって動的に生成されるため、ページの読み込み時にこれを実行したいと思います。

 <script type="text/javascript">
    function changeEmpty(){
      document.getElementByTagName('option')options[0].text='Choose One';
    }
    </script>
4

3 に答える 3

2

1 つの選択に対してページの最初のオプションになる場合は、次のようになります。

document.getElementsByTagName('option')[0].text='Choose One';

要素を指定したほうがよいので、将来誰かがその前に選択を追加しても問題ありません。

document.getElementById("MyId").getElementsByTagName('option')[0].text='Choose One';
于 2012-11-13T16:27:58.217 に答える
0

「空のオプションタグのテキスト値のみを変更する必要があります...」

optionあなたの構文は無効なので、すべての要素が変更されると考える理由がわかりません。

しかし、できることは単純にそれらを繰り返し、テキストの内容をテストすることです。

var opts = document.getElementsByTagName('option');

for (var i = 0, len = opts.length; i < len; i++) 
    if (opts[i].text === "")
        opts[i].text = "Choose One";
于 2012-11-13T16:29:40.833 に答える
0

<option>コンテンツなしですべての を本当に変更したい場合は、このコードを使用できます

function changeEmpty(){
  var els = document.querySelectorAll( 'option' );

  for ( var i=els.length; i--; ) {
    if ( els.innerHTML.trim() == '' ) {
      els.innerHTML = 'choose one';
    }
  }
}

<option>空の s が常に各タグ内の最初になると仮定して、次のよう<select>に変更します。

var els = document.querySelectorAll( 'select > option' );

いくつかの計算を節約します。

編集

querySelectorAll()はすべての最新ブラウザでサポートされていますが、IE7 およびそれ以前のバージョンではサポートされていません! caniuse.comを参照してください。

于 2012-11-13T16:31:13.170 に答える