<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
。
答案 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());
});
});