2016-06-20 6 views
-2

高い選択するようになっていたものを選択解除、それはたとえばjQueryが1.8より大きい場合は、attr( 'selected'、true)の呼び出しを繰り返します。それが1.8よりもjQueryを使って

を選択するようになっていたものをattr('selected', true);選択解除の繰り返し呼び出しがhere以下を見つけることができます:

$(document).on("click",".edit", function(){ 
 
    $("#editor").find("select").prop('selectedIndex',0); 
 
    $("#editor").find("#whour option[value='"+this.id+"']").attr('selected', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
 
<div id="editor"> 
 
\t <select id="whour" name="duration[hr]"> 
 
\t \t <option value="0">——</option> 
 
\t \t <option value="1">1 h.</option> 
 
\t \t <option value="2">2 h.</option> 
 
\t \t <option value="3">3 h.</option> 
 
\t \t <option value="4">4 h.</option> 
 
\t \t <option value="5">5 h.</option> 
 
\t \t <option value="6">6 h.</option> 
 
\t \t <option value="7">7 h.</option> 
 
\t \t <option value="8">8 h.</option> 
 
\t \t <option value="9">9 h.</option> 
 
\t \t <option value="10">10 h.</option> \t \t \t \t \t 
 
\t </select> 
 
</div> 
 
    
 
<button id="2" class="edit">2h</button> 
 
<button id="3" class="edit">3h</button> 
 
<button id="4" class="edit">4h</button> 
 
<button id="5" class="edit">5h</button>

そこに解決策がありますか?

+1

'selected'は' prop'です。しかし、違いはありません。 –

+3

@BramVanroy違いがあります。 'prop'を使って問題を解決するべきです。しかし、より良い選択肢は '$( '#whour')val(this.id);' – undefined

+0

@Vohuman jQueryはこれと下位互換性があると思っていました。 –

答えて

0

すべてのオプションの選択を解除してから、目的のオプションを選択する必要があります。

selectedはプロパティなので.prop()を使用してselectedプロパティを追加または削除する必要があります。

$(document).on("click", ".edit", function(){ 
    $("#editor #whour").find("option").prop('selected', false).filter("[value='"+this.id+"']").prop('selected', true); 
}); 
関連する問題