Check if an select option exists based on text in jQuery 1.7

后端 未结 4 731
情歌与酒
情歌与酒 2021-02-09 13:56

So I have the following piece of HTML:


                        
    
提交评论

  • 2021-02-09 14:53
    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.');
    

    If length is 0, it doesn't exist. I typically don't like using contains, because it's not an exact match.

    0 讨论(0)
  • 2021-02-09 14:54

    Try the following:

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

    Demo

    edit: The above snippet uses the jQuery contains selector which filters elements that their textContent contains the specified value. For an exact match you can use the code snippet suggested in christian-mann's answer.

    How to do this with Javascript (not jquery) – Jerry

    var optionExists = [].some.call(document.getElementById('sel').options, function(option) {
       return option.textContent === 'value';
    });
    
    0 讨论(0)
  • 2021-02-09 15:03

    The jQuery filter function accepts a function as its argument:

    $('#sel option').filter(function() { 
        return $(this).text() === "Option1"; 
    });
    
    0 讨论(0)
  • 提交回复
    热议问题