将输入val()设置为prev()。text()

时间:2012-12-21 05:23:06

标签: jquery

<div class="parent">
    <span>nameValue</span>    <input type="text" value=""/>
    <span>addressValue</span> <input type="text" value=""/>
    <span>phoneValue</span>   <input type="text" value=""/>
    <span>emailValue</span>   <input type="text" value=""/>

     <div class="edit">Edit</div>
</div>

$(document).ready(function(){
    $('.edit').click(function(e){
        $(this).parent().find('input').val(v);   // something like var v = $(this).prev().text() ????? 
    });
});

我正在尝试将所有输入的值设置为相应prev元素的文本。 但是我怎样才能访问它的prev元素?

输入元素没有设置id

5 个答案:

答案 0 :(得分:1)

我没有测试它,因为我准备去睡觉了,但这应该适合你。

$(this).parent().find("input").each(function(){
    $(this).val($(this).prev().html());
});

答案 1 :(得分:1)

$(this).closest(".parent").find("input").val(function() {
    return $(this).prev().text();
});

您也可以使用.each循环并在每个循环上使用val(),但回调函数是更干净的方法。

答案 2 :(得分:0)

$('.edit').click(function(e){
     $inputs = $(this).parent().find('input');
     $inputs.each(function(){
         var v = $(this).prev("span").text();
         $(this).val(v);                  
     });
});​

请参阅this fiddle

答案 3 :(得分:0)

$(document).ready(function(){
$('.edit').click(function(e){       
    var parent = $(this).parent();
    parent.children('span').each(function(){
            $(this).next().val($(this).text());
    });
});

});

是这样吗?

答案 4 :(得分:0)

$('.edit').click(function(e){
    $(this).closest(".parent").find("input[type='text']").each(function(){
        $(this).val($(this).prev().text());
    });
});​