组合两个相同的jQuery函数,只是它们使用不同的选择器和类



我有两个函数做同样的事情,只是我要添加的元素和ID不同。将这些功能组合成一个函数的最佳方式是什么?

<script>
$('.Index-page--has-image[id*="angle-right"]').each(function(){
var index = $(this).index('.Index-page--has-image')
$('.Parallax-host .Parallax-item').eq(index).attr('id','angle-right');
});
$('.Index-page--has-image[id*="angle-left"]').each(function(){
var index = $(this).index('.Index-page--has-image')
$('.Parallax-host .Parallax-item').eq(index).attr('id','angle-left');
});
</script>
['left','right'].forEach( way => {
way = 'angle-' + way ;
$('.Index-page--has-image[id*="'+way+'"]').each(function(){
var index = $(this).index('.Index-page--has-image');
$('.Parallax-host .Parallax-item').eq(index).attr('id',way);
});
} );

提取JQeach函数外的函数,并将angle值传递给函数参数,如以下

function yourFunctionName(element, idValue){
let index = $(element).index('.Index-page--has-image')
$('.Parallax-host .Parallax-item').eq(index).attr('id', idValue);
}
$('.Index-page--has-image[id*="angle-right"]').each(function(){
yourFunctionName(this, 'angle-right');
});
$('.Index-page--has-image[id*="angle-left"]').each(function(){
yourFunctionName(this, 'angle-left');
});

最新更新