0

私はリストを持っています:

<select id = "opt">
  <option value="a">a</option>
  <option value="b">b</option>
  <option value="c">c</option>
</select>

これをやろう:

alert (document.getElementById('opt').innerHTML);

それはそれを印刷します:

<select id = "opt"><option value="a">a</option><option value="b">b</option><option value="c">c</option></select>

まだ問題ありません。次に、選択したアイテムを変更します。

for (var count = 0; count < document.getElementById('opt').childNodes[0].options.length; count++)
{
 if (document.getElementById('opt').childNodes[0].options[count].value == 'b') { document.getElementById('opt').childNodes[0].options[count].selected = true; break; }
}

もう一度印刷します。

alert (document.getElementById('opt').innerHTML);

再び印刷されます:

<select id = "opt"><option value="a">a</option><option value="b">b</option><option value="c">c</option></select>

しかし、私はそのようなものを除いた!

<select id = "opt"><option value="a">a</option><option value="b" **selected="selected"**>b</option><option value="c">c</option></select>

したがって.innerHTML、変更には従いません。それを修正する方法は?

4

2 に答える 2

3

表示されるのは、プロパティと属性の違いです。要素が作成されると、属性がプロパティにコピーselectedされます。selectedプロパティを変更していますが、属性は変更されません。

ここで、プロパティと属性の設定の違いを確認できます。

http://jsfiddle.net/Guffa/Pec9j/

于 2012-04-23T10:52:57.803 に答える
1

Javaスクリプトはクライアント側の言語です。ページが読み込まれた後、JavaScriptが適用されるため、すでに読み込まれているページソースは変更されません。どの要素が選択されているかを知りたい場合-

var value = opt.options[opt.selectedIndex].value;
于 2012-04-23T10:43:03.377 に答える