2016-06-25 22 views
1

私は選択ボックスと1つの文字列を持っており、文字列でオプションを選択します。このような例の文字列= "ボルボ" と選択ボックスの場合 :選択オプションをテキストで選択してください。

<select> 
 
    <option value="v1">Volvo</option> 
 
    <option value="v2">Saab</option> 
 
    <option value="v3">Mercedes</option> 
 
    <option value="v4">Audi</option> 
 
</select>

は、誰も私を助けてくださいことはできますか?上の完全な一致を保証するために

var text = 'Volvo'; 
var $option = $('select option:contains("' + text + '")'); 

はまた、あなたがfilter()を使用することができます値の変数を使用するように、

var $option = $('select option:contains("Volvo")'); 

または:

+2

すでに何を試してみましたか?何が効いていないのですか? – nthall

答えて

0

あなたはこれを達成するために:containsセレクタを使用することができます必要な値:

var text = 'Volvo'; 
var $option = $('select option').filter(function() { 
    return $(this).text().trim() == text; 
}); 

そこからtruecheckedプロパティを設定します。

$option.prop('checked', true); 
2

使用:contains()擬似クラスセレクタを特定の文字列が含まれているオプションを取得します。チェックされた不動産の使用を更新するにはprop()メソッドを使用します。完全に一致する

$('option:contains("Volvo")').prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select> 
 
    <option value="v1">Volvo</option> 
 
    <option value="v2">Saab</option> 
 
    <option value="v3">Mercedes</option> 
 
    <option value="v4">Audi</option> 
 
</select>


:contains()ので、完全一致を確認しないfilter()方法を、使用します。

$('option').filter(function() { 
 
    // check trimmed text for filtering 
 
    return $.trim($(this).text()) == "Mercedes"; 
 
}).prop('selected', true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select> 
 
    <option value="v1">Volvo</option> 
 
    <option value="v2">Saab</option> 
 
    <option value="v3">Mercedes</option> 
 
    <option value="v4">Audi</option> 
 
</select>

関連する問題