jquery
  • addclass
  • removeclass
  • optimizely
  • 2016-05-31 20 views 1 likes 
    1

    我试图使用Optimizely在网站上的所有产品页面上设置添加到购物车按钮的颜色来设置A/B测试。使用Optimizely替换多个页面上的课程

    这里的

    <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'); 
    
    +0

    它适用于[的jsfiddle(https://jsfiddle.net/j61m26u4/) –

    +0

    你说得对,它的工作。但是,当我将它放入Optimizely时,它不起作用。 – Amanda

    +0

    控制台中是否有错误?它是否找到'$('#id-for-test')'?文档准备就绪时您是否运行代码? –

    回答

    1

    给每个车input元素的通用类,如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 in替代ID:

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

    ID应该是唯一的,所以查询只是停止查找后,它发现它的第一个实例。使用一个类,以便将更改应用于所有实例。

    +1

    非常感谢!这样可行。不能相信我错过了关于id和class的看法。 – Amanda

    +0

    @Amanda没问题!如果你发现这个答案是正确的,你应该将它标记为 –

    +0

    看起来像我在你原来的问题上建议的评论,然后;) –

    0

    我想这应该做的伎俩:

    $('input.add_to_cart_list').removeClass('add_to_cart_list').addClass('color-test'); 
    
    相关问题