0

私はjQueryチュートリアルに従っており、そのコードはjQuery 1.4.3で正常に機能しているようですが、jQuery1.8.3で機能する必要があります。

jsfiddle: http: //jsfiddle.net/auBbz/

問題:バージョン1.8.3に使用されているjQueryのバージョンを切り替えたときに、に置き換えclassNameた後classResultペインに表示される選択ボックスの中にテキストがありません<div class="selectBox"></div>

変更後のjsfiddle:http: //jsfiddle.net/auBbz/1/

他にどのような変更を見逃しましたか?

4

2 に答える 2

1

1.4 と 1.6 の間の大きな変更点の 1 つは、メソッドと、実際には属性ではないプロパティに使用されるメソッドattr()の導入です。prop()

selectedIndex属性ではなくプロパティと見なされます。あなたのコードは を返しundefinedていattr('selectedIndex')ます。prop('selectedIndex')代わりに使用

デモ: http://jsfiddle.net/auBbz/3/

于 2012-12-09T22:06:07.273 に答える
0

あなたがフォローしているチュートリアルは悪く、時代遅れです。

この条件を削除します。

if(i==select.attr('selectedIndex')){
          selectBox.html(option.text());
      }

ループの前に次を追加します。

selectBox.html(select.find('option:selected').text());

http://jsfiddle.net/oceog/auBbz/2/

チュートリアルはattr、html の非標準属性を使用するため悪いものであり、1.4.2data()でこれをカバーするメソッドが導入されていることを知っていたからです。良い。また、option選択したすべてにselect属性selectedがあるため、標準の属性が存在する場合にカスタム属性を使用する理由がわかりません。

于 2012-12-09T22:06:25.570 に答える