更改另一个元素后面的元素的内容

时间:2014-03-27 11:33:32

标签: jquery

我正在测试一些东西,看看我是否可以根据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()方法一直是战斗的方式,但我认为它只寻找相同类型的元素?根据文件(据我所知)。

有没有办法可以直接转到上一个元素并只更改内容?

5 个答案:

答案 0 :(得分:1)

  

但我认为它只查找相同类型的元素?

一点也不。 FIDDLE DEMO

代码:

$(".yeah").prev().css( "background-color", "red" );

其中.yeaha nchor元素,其上一个兄弟是div

因此,您可以放心,您的代码有效(当您将.text更改为.val时)

你也可以使用$('#change').val('it has changed'),但是如果在select之前动态添加任何元素,那么你必须只使用.prev函数。

答案 1 :(得分:0)

您需要使用.val()功能代替.text()

$("select").change(function() {
    $(this).prev().val("it has changed");
});

DEMO

但是,由于您已为输入指定了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();