2012-12-21 33 views
0
<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元素?將輸入val()設置爲prev()。text()

沒有設置爲輸入元素的id

回答

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

你還不如用一個.each循環和他們每個人的使用val(),但回調函數的清潔方法。

+0

你說得對,我修正了這個問題。如果它是一個ID,應該只做。 – Bergi

+1

簡短而甜美。 –

1

我沒有測試它,因爲我即將睡覺,但這應該爲你做的伎倆。

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

查看this fiddle

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

});

是這樣嗎?

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