使用jQuery选择无值的选项

时间:2013-07-22 14:47:06

标签: javascript jquery select

有问题的代码行:

$(this).find('select option:first').val();

如果我的选择具有以下结构:

<select>
    <option> -- choose -- </option>
    <option value="some_value"> Some text</option>
</select>

我上面发布的jQuery代码将返回--choose--作为值。有没有办法让我理解该选项是否有值,而不是返回其中的文本?

4 个答案:

答案 0 :(得分:3)

$(this).find('select option:first').attr('value');

注意:如果未设置value属性,则会返回undefined

答案 1 :(得分:3)

在您的情况下,如果您的第一个option没有value属性,则可以使用此功能:

$(this).find('select option[value]:first').val()

这将返回option中的第一个select标记,但要求它具有value属性。

<强>更新

基于@Samuel Caillerie的评论,您可以使用multiple attribute selectors来避免IE奇怪的行为:

select option[value][value!=""]:first

适用于Chrome和IE 10,兼容模式设置为IE 8。

答案 2 :(得分:2)

你可以这样做:

$(this).find('select option:selected').attr('value');

答案 3 :(得分:1)

试试这个:

$(this).find('select option:first').attr('value');