我正在测试一些东西,看看我是否可以根据select更改选择元素之前更改元素:
<input type="text" id="change" />
<select>
<option>some</option>
<option>thing</option>
<option>test</option>
</select>
$("select").change(function() {
$(this).prev().text("it has changed");
});
我认为使用prev()
方法一直是战斗的方式,但我认为它只寻找相同类型的元素?根据文件(据我所知)。
有没有办法可以直接转到上一个元素并只更改内容?
答案 0 :(得分:1)
但我认为它只查找相同类型的元素?
一点也不。 FIDDLE DEMO
代码:
$(".yeah").prev().css( "background-color", "red" );
其中.yeah
是a
nchor元素,其上一个兄弟是div
因此,您可以放心,您的代码有效(当您将.text
更改为.val
时)
你也可以使用$('#change').val('it has changed')
,但是如果在select
之前动态添加任何元素,那么你必须只使用.prev
函数。
答案 1 :(得分:0)
您需要使用.val()功能代替.text()
。
$("select").change(function() {
$(this).prev().val("it has changed");
});
但是,由于您已为输入指定了id,因此只需$('#change').val('it has changed')
即可完成此任务。
答案 2 :(得分:0)
使用val()
$(this).prev().val("it has changed");
答案 3 :(得分:0)
<input type="text" id="change" />
<select>
<option>some</option>
<option>thing</option>
<option>test</option>
</select>
$("select").change(function() {
$value=$(":selected").text();
$("#change").val($value)
});
答案 4 :(得分:0)
尝试这样做..
$("select").change(function() {
$(this).prev().text("it has changed");
}).change();