2011-12-29 17 views
0

jqueryを使用してその値ではなくテキストでselect要素の項目を選択したいとします。テキストでjqueryを使用してselect要素の好きな項目を選択してください。

私はこのコードが見つかりました:

$("#myselect").val("Some oranges").attr("selected", "selected"); 

をしかし、私はそれは私の選択オプションのテキストを使用しようが、それは唯一のオプション値で動作します。

どうすればいいですか?

答えて

1

ような何か:

$("#myselect option").filter(function(){ 
    return $(this).text() == "Some oranges"; 
}).attr("selected", "selected"); 

ライブフィドル:http://jsfiddle.net/WAsLu/

1

あなたはjQueryのを使用している場合にもテキスト値

$("#myselect option:contains('Some oranges')").attr("selected" , "selected"); 

が含まれているオプションを見つけるために、:contains()擬似セレクタを使用することができます

の代わりに、 .prop()を使用している
$("#myselect option:contains('Some oranges')").prop("selected", true); 

Example on jsfiddle

+0

ケースを追加しました非感受性誘導体 –

0

jQueryの:containsセレクタ延びるは大文字と小文字を区別しない部分のための大文字と小文字を区別しない完全一致またはicontainsためecontains有するセレクタを含み、大文字と小文字を区別し、そのコメントを1として

$("#myselect option:contains(Some oranges)").attr("selected", "selected"); 

あります一致:

$.expr[":"].econtains = function(obj, index, meta, stack){ 
return (obj.textContent || obj.innerText || $(obj).text() || "").toLowerCase() == meta[3].toLowerCase(); 
} 
$.expr[':'].icontains = function(obj, index, meta, stack){ 
return (obj.textContent || obj.innerText || jQuery(obj).text() || '').toLowerCase().indexOf(meta[3].toLowerCase()) >= 0; 
}; 
関連する問題