Jquery循环名称增量

时间:2016-04-23 17:48:17

标签: javascript jquery css

我是jquery的新手,这个简单的任务压倒了我。我想知道如何将以下代码转换为一个循环?有人可以帮忙吗?

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

3 个答案:

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