2012-03-26 71 views

回答

6
var result = $('#selectId option[value!=""]').first().html(); 

或:

var result = $('#selectId option[value!=""]:first').html(); 

Attribute Not Equal selector:

描述:选择要么没有指定属性,还是具有指定的属性,但不与一定的值的元素。

:first selector

说明:选择第一个匹配元素。 第一个伪类相当于:eq(0)。它也可以写为:LT(1)

注意所有<option>小号必须有,以便在value属性的选择按预期运行。如果不能保证使用本:

var result = $('#selectId option[value!=""][value]:first').html(); 

Has Attribute Selector [name]

说明:选择一个有特定属性的元素,具有任何价值。

+1

+1假设我想要选择那个,而不是仅仅获取innerhtml。我只是将attr函数设置为“selected”? – MacGyver 2012-03-26 17:53:13

+0

@MacGyver是:'$('#selectId option [value!=“”]')。first()。attr('selected','selected')' – gdoron 2012-03-26 17:58:01

+0

如果您已经设置了所有选项的值,将始终返回第一个选项,但您可以将其更改为像'$('#selectId option [selected!=“”]')。first()。html();' – Dusty 2014-02-12 08:19:00

1

如果我得到的权利,你想从下拉第二elment尝试

$('select[name=thename] option:eq(1)').text();​ 
+0

其中值不为空?请再次阅读该问题:_“我不想对它进行硬编码,以至于每次都需要第二个选项,但我想确保它是第一个设置了值的选项。”_ – gdoron 2012-03-26 17:37:52

+1

@gdoron yea我得到了它 – 2012-03-26 17:42:52

0

我喜欢简单,所以我给你两条路,我会做到这一点取决于结构。我通常不会按名称选择,因为代码更复杂,而且IMO不必要。

如果HTML只有一个类没有ID:

<select class='example'> 
    <option value=''>Text 0</option> 
    <option value='something'>Text 1</option> 
    <option value='something else'>Text 2</option> 
</select> 

$('select.example option:eq(1)').text(); // Text 1 

如果HTML有一个id,这是最有效的方式来获取文本:

<select id='example'> 
    <option value=''>Text 0</option> 
    <option value='something'>Text 1</option> 
    <option value='something else'>Text 2</option> 
</select> 

$('#example option:eq(1)').text(); // Text 1