0

我有一个电子商务网站,每次有人点击“添加到托盘”(我们称其为托盘而不是购物车)时,页面都会刷新到同一页面并将自身定位到该产品的 div(在这里试试:http://www.boostliquidation.com/)。使用此 Javascript 会发生这种情况:

 $('input.returnLink').each(function(){
     $(this).attr('value',window.location.href + $(this).attr('data-skuhash'));
     }); 

这个锚标签被放置在“添加到购物车”按钮之前的隐藏输入标签中:

<input type="hidden" value="back" name="return_to" class='returnLink' data-skuhash='#{%     for variant in product.variants %}{{variant.sku}}{% endfor %}' /> 

({% %} 中的代码是一种名为 Liquid 的语言,用于 Shopify 网站)。

这很好用......但仅限于第一个产品。它会在地址栏中添加以 # 开头的 SKU 编号。如果用户添加另一个产品,它会刷新到页面顶部,因为它会将 SKU 编号修改为地址栏中已经显示的现有 SKU 编号。

我如何才能在第一次用自己的 SKU 替换现有 SKU 之后添加产品,以便它们刷新回到产品而不是回到页面顶部?

4

1 回答 1

0

我可能会尝试使用string.replace()

var str = window.location.href;
var hash = $(this).attr('data-skuhash');

if (str.match('#\w\w+'){
   str.replace('#\w\w+', hash);
} else {
    str = str + hash;
}

查找 url 末尾的任何哈希值,如果找到则替换,如果没有则添加一个。

于 2011-12-30T18:39:05.250 回答