2011-05-06 8 views
2

jQuery 1.6では、.val()関数がjQuery 1.5.2以降に変更されているようです。jQuery 1.6、その.val()の動作を変更しましたか?

値を取得するためにselectのオプションを呼び出すと、テキストが表示されます。たとえば :私が呼ぶとき

<option value="1">john</option> 

:jQueryの1.5.2と

$('select').val(); 

私はを取得するjQueryを1.6としながら、私はを得るジョン

私は、彼らが行動を変え知っています.attr()を入力し、.prop()を入力してください。this link.val()については何も見つかりません。

Hereは、この相違点を示した例で、これまでに試したことがあります。表示するにはjQuery 1.6からjQuery 1.5.2に切り替えてください。

をjQuery 1.6で取得するにはどうすればよいですか?

答えて

4

val('asdf')はもはや値を設定し、バージョン1.6のバグがありました:http://bugs.jquery.com/ticket/9071このバグは、v1.6.1で修正されましたが。

また、他の人たちが言っていることにもかかわらず、val()を使用して値を設定することは大丈夫です。実際には、attr('value', 'asdf')を使用することよりjQueryチームによります。

+0

これは私が本当に探していたものです。Richardに感謝します。 – Dalen

8

あなたの間違いは、valからまでという値を作成することです。これはattr('value', id)を使用してください。その後、val()は、以前のバージョンと同じように期待どおりに動作し、optionの値を得ることができます。

http://jsfiddle.net/KFDWm/5/

+0

これは明らかですが、setterとしての.val()がjQuery 1.6で動作しなくなったのはなぜですか? – Dalen

+0

私が理解しているように、要素がすでに作成されていれば、val()は理想的に使用されるべきです。最初の回では、HTMLで要素を作成するときのように、特に「値」を設定することが重要です。私はこれが 'val()'が取得する際に 'value'属性の値をチェックするが、まだ存在していなければ作成しないためだと思われます。それが意味をなさないならば。他の誰かがより良い説明をしているなら、私もそれを聞いてみたい。 –

+0

は合理的だと思われますが、ドキュメントの中にはこれも書かれていますが、私はそれを逃したばかりです。ありがとうございました – Dalen

関連する問題