2013-02-21 51 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/