jQuery 1.8.2 - 如何从仅包含文本的select中获取选项?

时间:2013-09-04 19:09:08

标签: jquery html jquery-1.8

简单地说,使用这个:

<select id="Test">
    <option value="1">ABC</option>
    <option value="2">DEF</option>
</select>

如何使用jQuery仅使用“DEF”获取option[value="2"] - 请记住我使用的是1.8.2

谢谢!

4 个答案:

答案 0 :(得分:6)

尝试:contains()选择器:

$('#Test option:contains("DEF")')

Fiddle

请注意:contains()是通配符搜索。如果您需要完全匹配,我认为您只需要迭代或过滤选项并检查text()。这是一种可能性:

http://jsfiddle.net/YuK2K/

console.log(getOptionByText('Test', 'DEF'));

function getOptionByText(id, value) {
    return $('#' + id).find('option').filter(function() {
       return $(this).text() == value; 
    });
}

答案 1 :(得分:2)

如果您确定之前显示的其他选项中没有包含该值,则可以使用contains。请注意,包含通配符匹配不是完全匹配。相反,你可以通过这种方式进行完全匹配。

$('#Test option').filter(function () {
    return this.innerHTML === 'DEF'
}).val();

<强> Fiddle

答案 2 :(得分:1)

有帮助吗?

$( '#Test option' ).each( function() {
    if ( $( this ).html() == 'DEF' ) {
        alert( $( this ).val() );
    }
} );

答案 3 :(得分:1)

$("select option:contains('ABC')")

这里是示例 - http://jsfiddle.net/maximua/7fF7M/