检查的选择选项存在基于文本的jQuery 1.7(Check if an select option

2019-07-30 14:07发布

所以,我有以下的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”)

Answer 1:

尝试以下方法:

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

演示

编辑:上述段使用了jQuery contains选择器,其过滤元件,它们的textContent 包含指定值。 对于精确匹配,你可以使用基督教曼的回答提出的代码片段。

如何使用JavaScript(jQuery的不)做到这一点 - 杰里

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


Answer 2:

jQuery的滤波器函数接受功能作为它的参数:

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


Answer 3:

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,它不存在。 我通常不喜欢使用含有,因为它并不完全匹配。



Answer 4:

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


文章来源: Check if an select option exists based on text in jQuery 1.7