我有两个函数做同样的事情,只是我要添加的元素和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');
});