2012-07-24 58 views
4

所以我有下面這段HTML的:檢查如果選擇選項存在基於文本的jQuery 1.7

<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」)

+0

發現這個過去的問題,應該爲您的問題提供幫助[可能的解決方案](http://stackoverflow.com/questions/2385963/how-do-i-check-if-no-option-is-selected-in -a-selectbox-using-jquery) – 2012-07-24 20:50:34

回答

9

嘗試以下方法:

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

Demo

+0

如果選擇只有'Option112' – 2012-07-24 20:59:37

+0

@ GRIGORE-TURBODISEL yes,那麼將會失敗。 – undefined 2012-07-24 21:02:33

0
var hasOption1=$("option:contains('Option1')", "#sel").length==1; //true or false 
+0

如果選擇只有'Option112',它會失敗 – 2012-07-24 20:59:19

+0

@ GRIGORE-TURBODISEL - 你是否讀過這個問題? – adeneo 2012-07-24 21:31:56

+1

我做到了,這就是爲什麼我沒有倒下你的答案。您應該強調,沒有嚴格的比較選擇器,應該使用'filter(fn)'來代替。 – 2012-07-24 22:09:24

5

jQuery的濾波器函數接受功能作爲它的參數:

$('#sel option').filter(function() { 
    return $(this).text() === "Option1"; 
}); 
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不存在。我通常不喜歡使用包含,因爲它不完全匹配。

相關問題