我正在尝试提醒前一个文本字段的值。这是我到目前为止尝试但没有骰子:
<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 :(得分:8)
请改为尝试:
<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 强>
您试图获取select元素的前一个元素,而不是其中之一。您需要前往父div,然后转到上一个div,然后返回到输入。
答案 1 :(得分: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/