(function($){ $.dateToUnixTime = (date) => { return parseInt((typeof date === 'undefined'?new Date():new Date(date).getTime()) / 1000); }; $(document).ready(function($){ var configs = { limitView:10 }, itemCode = location.href.match(/goods=([a-z0-9_\-]+)/), txtPagerText = $('.FS2_pager_text').eq(0).text(), mchPagerText = txtPagerText.match(/(\d+) 件中 (\d+)-(\d+) 件表示/), totalView = 0, totalPage = 0, elePagerStay = $('.FS2_pager_stay').eq(0), currentPage = !elePagerStay[0]?1:parseInt($('.FS2_pager_stay').eq(0).text()), funcAjaxGetHtml = function( itemCode, pageNo, callback ){ $.ajax({ type:'GET', url:'/fs/alamode/ReviewListGoods.html?goods=' + itemCode + '&pageno=' + pageNo, dataType:'html', error:function(jqXHR, textStatus, errorThrown){ console.log('error:review sort => ajax get html' + textStatus); }, success:function(response, textStatus, jqXHR){ callback(response); } }); }, funcGetHtml = ( itemCode, totalPage, totalView, callback ) => { var itemView = [], i = 0; while(i < totalPage){ funcAjaxGetHtml( itemCode, i + 1, (response) => { $(response).find('.userTable_01').each(function(){ var eleTable = $(this).html(), eleDetailProfDate = $('.FS2_Review_Detail_Prof_Date', eleTable), eleStarImg = $('.FS2_ReviewStars', eleTable), cntStar = 0, updateTimestamp = -1; if(eleDetailProfDate[0]){ var mthUpdate = eleDetailProfDate.text().match(/投稿日:(\d+)年(\d+)月(\d+)日/); if(mthUpdate !== null) updateTimestamp = $.dateToUnixTime(mthUpdate[1] + '/' + mthUpdate[2] + '/' + mthUpdate[3]); } if(eleStarImg[0]){ var mthStarImgAlt = eleStarImg.attr('alt').match(/おすすめ度((.+?))/); if(mthStarImgAlt !== null) cntStar = parseFloat(mthStarImgAlt[1]); } itemView.push({ update:updateTimestamp, star:cntStar, html:eleTable }); if(itemView.length === totalView) callback(itemView); }); } ); ++i; } }, funcSortItemView = (itemView) => { itemView.sort((a, b) => { if(a.star > b.star) return -1; if(a.star < b.star) return 1; if(a.update > b.update) return -1; if(a.update < b.update) return 1; return 0; }); return itemView; }, funcPutHtml = ( itemView, currentPage, totalView ) => { var elePager = $('.pager').eq(1), eleUserTable = $('.userTable_01'), i = configs.limitView * (currentPage - 1), l = i + configs.limitView; if(l > totalView) l = totalView; if(l === 0){ console.log('error:review sort => itemView empty'); return false; } eleUserTable.remove(); while(i < l){ elePager.before('\