2012-03-26 69 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