2011-11-22 16 views
8

を選択された変更は、例を見てください:あなたは2つのチューの違いは

$("#chooser-1 .y").removeAttr("selected"); 

しかしとしてのみラインで見たようhttp://jsfiddle.net/HHDpK/1/

を結果は状態が異なります(特にChromeの場合)。 何か不足していますか、それともバグですか?

答えて

5

属性を持つjQueryの内部バグのようです。

古いバージョンでは、が1.6バージョンで導入される前は、works as expectedです。

$("#chooser-1 .x").prop("selected", "selected"); 
$("#chooser-1 .y").removeProp("selected"); 

jsFiddle update:新しいバージョンで

は、単に要素のような特性に対処する.prop()を使用します。

以上 - prop()で先に選択した要素に.removeProp("selected")を使用すると、何も選択されていない代わりに元の選択が返されます - 理想的な動作。

+0

ありがとう、私は実際に私のコードで 'prop'を使うことに決めました。 – Maxim

+1

これはうまくいきますが、prop()はhtmlオプション要素で選択された属性を設定していないので、この{{remove}}({selected})}と{ 'selected'、 'selected')。attr( 'selected'、 'selected')} – QMaster

2

上記の答えがうまくいかなかったことがわかったので、選択した項目を無効にするにはpropをfalseに設定しなければなりませんでした。

$("#chooser-1 .x").prop("selected", false); 

removePropは、再度オプションを再選択できないなどの望ましくない結果を引き起こします。

私はjquery 1.6.2を使用しています

関連する問題