1
<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设置。

4

5 回答 5

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

您也可以使用.each循环并使用val()它们中的每一个,但回调函数是更简洁的方法。

于 2012-12-21T05:26:50.837 回答
1

我要睡觉时没有测试它,但这应该对你有用。

$(this).parent().find("input").each(function(){
    $(this).val($(this).prev().html());
});
于 2012-12-21T05:26:22.727 回答
0
$('.edit').click(function(e){
     $inputs = $(this).parent().find('input');
     $inputs.each(function(){
         var v = $(this).prev("span").text();
         $(this).val(v);                  
     });
});​

看到这个小提琴

于 2012-12-21T05:28:12.250 回答
0
$(document).ready(function(){
$('.edit').click(function(e){       
    var parent = $(this).parent();
    parent.children('span').each(function(){
            $(this).next().val($(this).text());
    });
});

});

是这样吗?

于 2012-12-21T05:30:40.120 回答
0
$('.edit').click(function(e){
    $(this).closest(".parent").find("input[type='text']").each(function(){
        $(this).val($(this).prev().text());
    });
});​
于 2012-12-21T05:31:38.507 回答