javascript - 属性(property)范围问题?

标签 javascript jquery

我尝试从对象内引用 discount_code 属性,但不断收到以下错误。我如何访问discount_code

错误:

Uncaught TypeError: Cannot call method 'val' of undefined

HTML:

<input type="text" name="txt_discount_code" value="12345" />

JS:

var cart = {
    transaction: {},
    discount_code: $('input[name=txt_discount_code]'),

    get_cart_items_params: {
        page: 'checkout',
        s_method: 'get-cart-items',
        txt_discount_code: this.discount_code.val()
        // txt_discount_code: cart.discount_code.val()
    }
};

最佳答案

就像 ShankarSangoli 所说,在定义对象之前您无法访问该对象。

您必须将 cart 的声明分成两部分:

var cart = {
    transaction: {},
    discount_code: $('input[name=txt_discount_code]')
};

cart.get_cart_items_params = {
    page: 'checkout',
    s_method: 'get-cart-items',
    txt_discount_code: cart.discount_code.val()
};

或者只是将 discount_code 放入变量中:

var $discount_code = $('input[name=txt_discount_code]');
var cart = {
    transaction: {},
    discount_code: $discount_code
    get_cart_items_params = {
        page: 'checkout',
        s_method: 'get-cart-items',
        txt_discount_code: $discount_code.val()
    }
};

关于javascript - 属性(property)范围问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8248264/

相关文章:

javascript - 在新窗口中运行 Javascript.open

javascript - 将文本附加到标签时的 Jquery 问题

javascript - 在谷歌地图中仅显示特定国家(地区)

javascript - 如何使用 python selenium 单击位于 html 页面列表中没有唯一标识符的文本?

关闭子窗口(弹出窗口)后Javascript刷新主页

javascript - 自动完成 Google Javascript

javascript - jquery - 需要一个比 .change 更好的事件来触发验证逻辑

javascript - 在 javascript 和 ajax 中单击按钮时显示警报

javascript - Bootstrap 日期时间选择器,单击图像时显示对话框

javascript - 使用JS自动提交表单