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() ????? 
    });
});

すべての入力の値を、対応する前の要素のテキストに設定しようとしています。しかし、どうすれば前の要素にアクセスできますか?

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
$(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 に答える
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 に答える