6

だから私は次のHTMLを持っています:

<select id="sel">
<option value="0">Option1</option>
<option value="1">Option2</option>
<option value="2">Option3</option>
<option value="3">Option4</option>
</select>

#selにテキスト値に基づくオプションがあるかどうかを確認するにはどうすればよいですか?("オプション1")

4

4 に答える 4

14

次のことを試してください。

var opt = 'Option1';
if ($('#sel option:contains('+ opt +')').length) {
   alert('This option exists')
}

デモ

編集:上記のスニペットは、containstextContent指定された値が含まれている要素をフィルタリングするjQueryセレクターを使用しています。完全に一致させるには、christian-mannの回答で提案されているコードスニペットを使用できます。

Javascript(jqueryではない)でこれを行う方法– Jerry

var optionExists = [].some.call(document.getElementById('sel').options, function(option) {
   return option.textContent === 'value';
});
于 2012-07-24T20:51:29.460 に答える
8

jQueryフィルター関数は、引数として関数を受け入れます。

$('#sel option').filter(function() { 
    return $(this).text() === "Option1"; 
});
于 2012-07-24T20:52:46.103 に答える
2
var length = $('#sel option').filter(function() { 
    return $(this).text() === "Option1"; 
}).length;

if(length == 0)
    console.log('This option text doesn't exist.');
else
    console.log('This option text exists ' + length + ' times.');

長さが0の場合、存在しません。完全に一致するわけではないため、通常、containsを使用するのは好きではありません。

于 2015-07-31T14:22:19.013 に答える
0
var hasOption1=$("option:contains('Option1')", "#sel").length==1; //true or false
于 2012-07-24T20:51:28.087 に答える