//星表示 (function () { // 表示形式ごとにセレクターを指定 var selector_list = [ // ピックアップ { // 商品一覧のセレクター 'product_items': '.block-thumbnail-t li', // 商品一覧の中で、1つの商品を表すセレクター 'product': '.block-thumbnail-t--goods', // 商品の要素の中にある、Aタグのセレクター 'anchor': '.block-thumbnail-t--goods-image a', // スターを表示したいセレクター 'display_star': '.block-thumbnail-t--goods-image', // スターの追加位置(append, prepend, after, beforeのどれか) 'display_position': 'after' } ]; // スターの表示タグ var star_simple_tag = 'list-starsimple'; // 追加するスター表示用のdivタグ var star_display_div = '
'; /// 以下は修正不要 /// jQuery.each(selector_list, function (i, s) { if (!jQuery(s.product_items).length) { return; } var addStarDisplayDiv = function (p) { var $p = jQuery(p); var $a = $p.find(s.anchor); if (! $a.length) { return; } var productCd = $a.attr('href').match('/g\/g(.+)\/$'); if (productCd.length < 2) { return; } switch (s.display_position) { case 'append': $p.find(s.display_star).append(star_display_div.replace('###ProductCd###', productCd[1])); break; case 'prepend': $p.find(s.display_star).prepend(star_display_div.replace('###ProductCd###', productCd[1])); break; case 'before': $p.find(s.display_star).before(star_display_div.replace('###ProductCd###', productCd[1])); break; case 'after': $p.find(s.display_star).after(star_display_div.replace('###ProductCd###', productCd[1])); break; } }; jQuery(s.product_items + ' ' + s.product).each(function (i, p) { addStarDisplayDiv(p); }); // 無限スクロール対応 var observer = new MutationObserver(function (mutations) { mutations.forEach(function (m) { m.addedNodes.forEach(function (e) { if (e.tagName === document.querySelector(s.product_items + ' ' + s.product).tagName) { addStarDisplayDiv(e); } }); }); revico.global.star.exec(); }); observer.observe(document.querySelector(s.product_items), { childList: true }); }); })();