根据jQuery 1.7中的文本检查是否存在选择选项

时间:2012-07-24 20:44:58

标签: javascript jquery html jquery-selectors

所以我有以下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是否有基于文本值的选项? (&#34;选项1&#34)

4 个答案:

答案 0 :(得分:11)

尝试以下方法:

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

Demo

编辑:上面的代码段使用jQuery contains选择器,该选择器过滤其textContent 包含指定值的元素。要获得完全匹配,您可以使用christian-mann的答案中建议的代码段。

  

如何使用Javascript(而不是jquery) - Jerry

var optionExists = [].some.call(document.getElementById('sel').options, function(option) {
   return option.textContent === 'value';
});

答案 1 :(得分:8)

jQuery过滤器函数接受一个函数作为其参数:

$('#sel option').filter(function() { 
    return $(this).text() === "Option1"; 
});

答案 2 :(得分: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.');

如果length为0,则不存在。我通常不喜欢使用contains,因为它不是完全匹配。

答案 3 :(得分:0)

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