使用 Optimizely 替换多个页面上的 class

Replacing a class on multiple pages with Optimizely

我正在尝试使用 Optimizely 设置 A/B 测试,以更改站点上所有产品页面上添加到购物车按钮的颜色。

这是网站上的当前代码

<input id="id-for-test" class="add_to_cart_list" value="Add to Cart" name="Add to Cart" type="button"
                                                    onclick='sendToDataLayer("Category Lower", "Add to cart");return cat_add_one_to_cart( "<?= $p["id"] ?>", "<?= $param_sku ?>", "<?= $output_price ?>", "<?= $path ?>", "<?= $can_buy_limit ?>" ,"<?=$this_page_type?>")'/>

我正在 Optimizely 代码编辑器中添加它,但它不起作用

$('#id-for-test').removeClass('add_to_cart_list').addClass('color-test');

给每个购物车 input 元素一个共同的 class 例如 cart-class:

<input id="id-for-test" class="cart-class add_to_cart_list" value="Add to Cart" name="Add to Cart" type="button"
    onclick='sendToDataLayer("Category Lower", "Add to cart");return cat_add_one_to_cart( "<?= $p["id"] ?>", "<?= $param_sku ?>", "<?= $output_price ?>", "<?= $path ?>", "<?= $can_buy_limit ?>" ,"<?=$this_page_type?>")'/>

然后根据class查询而不是ID:

$('.cart-class').removeClass('add_to_cart_list').addClass('color-test');

ID 应该是唯一的,因此查询在找到第一个实例后就停止查找。使用 class 以便将更改应用于所有实例。

我认为这应该可以解决问题:

$('input.add_to_cart_list').removeClass('add_to_cart_list').addClass('color-test');