我是jquery的新手,这个简单的任务压倒了我。我想知道如何将以下代码转换为一个循环?有人可以帮忙吗?
$('#image1').change(function() {
$('#input-image1 .error').hide();
});
$('#image2').change(function() {
$('#input-image2 .error').hide();
});
答案 0 :(得分: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 :(得分:1)
你可以简单地使用一个循环:
var i;
for (i=1; i<3; i++) {
$('#image'+i).change(function() {
$('#input-image1'+i+' .error').hide();
});
}
答案 2 :(得分:1)
您可以使用jQuery $.each
遍历您的元素:
$.each($('#image1, #image2'), function (k) {
$(this).on('change', function() {
$('#input-image' + ++k + '.error').hide();
});
});