2013-02-21 96 views
0

我試圖提醒以前的文本字段的值。這是我到目前爲止已經試過,但沒有骰子:Jquery獲取以前輸入文本字段的值

<div> 
    <input type="text" value="foo"> 
</div> 
<div> 
    <select onchange="alert($(this).prev('input').val())"> 
     <option value="bar1">bar1</option> 
     <option value="bar2">bar2</option> 
    </select> 
</div> 
+0

的'select'元素沒有任何兄弟姐妹的元素之前,所以'.prev'找不到任何元素。 – 2013-02-21 23:03:04

回答

7

試試這個:

<div> 
    <input type="text" value="foo"> 
</div> 
<div> 
    <select onchange="alert($(this).parent().prev().find('input').val())"> 
     <option value="bar1">bar1</option> 
     <option value="bar2">bar2</option> 
    </select> 
</div> 

jsFiddle example

你試圖讓選擇元素的前一個元素,其沒有一個。你需要去父母的div,然後去前面的div,然後回到輸入。

0

它不工作的原因是因爲它試圖檢索包含選擇器的DIV元素的值。 .prev()搜索的元素的DOM立即你從

<div> 
    <input type="text" value="foo"> 
    <select onchange="alert($(this).prev().val())"> 
     <option value="bar1">bar1</option> 
     <option value="bar2">bar2</option> 
    </select> 
</div> 

調用這個的jsfiddle看一看爲例http://jsfiddle.net/2A9jJ/2/