TypeError:undefined不是对象(评估'pcos_edd_discount_code.replace')

时间:2017-12-01 02:03:16

标签: javascript jquery css wordpress

我使用以下脚本替换店面/购物插件中的短代码提供的一些文本。如果您将项目添加到购物车并转到结帐,则可以看到以下操作。

pcos_eddiscountcode = function () {
    var pcos_edd_discount_code = jQuery('#edd_discount_code').html();
    var new_pcos_edd_discount_code = pcos_edd_discount_code.replace('Click to enter it', 'Click here to enter it');
jQuery('#edd_discount_code').html(new_pcos_edd_discount_code);
};

工作正常,但它会在插件的完全独立部分引起问题。你可以看到它here (add to cart buttons are ignoring my css and forcing a page redirect on click).

我收到以下错误:

TypeError: undefined is not an object (evaluating 'pcos_edd_discount_code.replace')

我是javascript的新手,所以其他任何人都表示赞赏!

:)

1 个答案:

答案 0 :(得分:0)

这是因为当beatpcos_script.js被加载到/ store / page中时,pcos_eddiscountcode会调用jQuery(document).readypcos_eddiscountcode仅存在于/ checkout / page中,因此jQuery无法在/ store / page中找到id #edd_discount_code,这就是为您提供未定义的消息。

要解决此问题,请将pcos_eddiscountcode函数(以及/ checkout / page的其他必要函数)移动到单独的javascript文件中,并仅在checkout / page中包含特定于checkout的javascript文件。