2011-12-04 170 views
2

我想要訪問選擇選項之前的一個選擇選項的值,即選擇選項之一的選項之一。 (對不起,很難用它來表示!)從jQuery中選擇選項之前選擇一個前一個元素

例如,如果從這裏選擇「4」,我想要得到選項「2」的值。

<option value ="1">1</option> 
<option value ="2">2</option> 
<option value ="3">3</option> 
<option value ="4">4</option> 

我知道前面有一個prev方法,但其他方法怎麼樣?

謝謝!

+1

選擇選項值2或1時會發生什麼? – MatthewJ

+0

@MatthewJ哦,這是一個很好的問題!我應該將它應用到3以上。謝謝! – claras

回答

3

你能做到這一點

$("select").change(function(){ 
    var a = $('select option:selected').prev().prev().text(); 
    alert(a); 
}); 

例子:http://jsfiddle.net/jasongennaro/NcPgV/

然而,當選擇2或更低這個返回任何內容。

+0

完美,謝謝! – claras

+0

很高興幫助@claras! –

1

prev函數將獲得給定節點的前一個兄弟;調用它兩次將實現你想要的。

var element = $("option[value='4']"); 
var prev2 = $(element).prev().prev(); 
alert(prev2.val()); 
//alerts 2 

這裏的fiddle

2

正如其他人所說,您可以撥打prev()兩次。

另一種更具擴展性的解決方案是使用prevAll()。它返回從向外最接近的同級有序元素,這樣你就可以eq()結合起來:如果要移動超過2個選項遠離

var siblingValue = $("option:selected").prevAll().eq(1).val(); 

這樣,您就不必鏈多次調用prev()選定的一個。

+0

很高興知道!謝謝! – claras

相關問題