2016-04-23 90 views
0

我是新来的jquery和这easytask压倒我。我想知道如何将下面的代码转换为一个循环?谁能帮忙?jquery循环与名称增量

$('#image1').change(function() { 
$('#input-image1 .error').hide(); 
}); 
$('#image2').change(function() { 
$('#input-image2 .error').hide(); 
}); 
+0

你是隐藏DOM元素时发生“变化”事件。什么**完全**你需要一个循环? – nem035

回答

2

假定由“一环”你的意思是一个事件处理功能,就可以使用的类的组合,以组的元素来选择,并且还data-*属性来表示要定位的元件。试试这个:

<input type="text" id="image1" data-target="input-image1" class="image" /> 
<input type="text" id="image2" data-target="input-image2" class="image" /> 

<div id="input-image1"> 
    <span class="error">error</span> 
</div> 
<div id="input-image2"> 
    <span class="error">error</span> 
</div> 
$('.image').change(function() { 
    $('#' + $(this).data('target') + ' .error').hide(); 
}); 
1

你可以简单地使用一个循环:

var i; 
for (i=1; i<3; i++) { 
    $('#image'+i).change(function() { 
     $('#input-image1'+i+' .error').hide(); 
    }); 
} 
1

你可以通过你的元素使用jQuery $.each循环:

$.each($('#image1, #image2'), function (k) { 
    $(this).on('change', function() { 
     $('#input-image' + ++k + '.error').hide(); 
    }); 
}); 
+0

这很好。谢谢! – danny3b