为什么我得到这个错误'TypeError undefined不是一个对象…'包括Shopify链接产品选
Why am I getting this error 'TypeError undefined is not an object...' when including Shopify Linked Product Options?
我正试图实现Shopify的链接产品选项到我的商店(遵循本教程),他们似乎在产品页面上工作得很好,但打破了其他脚本(购物车&在我的索引和收藏页面上的快速商店打开但没有内容。
我在Safari中得到以下错误:
TypeError: undefined is not an object (evaluating 'availableOptions.length')
引用这段代码:
var initialValue = selector.val();
selector.empty();
var availableOptions = Shopify.optionsMap[key];
for (var i=0; i<availableOptions.length; i++) {
var option = availableOptions[i];
var newOption = jQuery('<option></option>').val(option).html(option);
selector.append(newOption);
}
如果有人对这可能是为什么有任何建议,我将感谢您的输入。我对JS不是很好,所以在这个问题上挣扎!
更新:
我很确定这部分是定义'键' -如果键是未定义的,这是否意味着它不能找到.single-option-selector
?
switch (selectorIndex) {
case 0:
var key = 'root';
var selector = jQuery('.single-option-selector:eq(0)');
break;
case 1:
var key = jQuery('.single-option-selector:eq(0)').val();
var selector = jQuery('.single-option-selector:eq(1)');
break;
case 2:
var key = jQuery('.single-option-selector:eq(0)').val();
key += ' / ' + jQuery('.single-option-selector:eq(1)').val();
var selector = jQuery('.single-option-selector:eq(2)');
}
步骤1:查找错误
表示availableOptions是undefind
,所以Shopify.optionsMap[key]
返回undefined
你应该试着调试一下。是否定义了键?如果Shopify是对的?Shopify。optionsMap存在吗?
console.log(key);
console.log(Shopify);
console.log(Shopify.optionsMap);
console.log(Shopify.optionsMap[key]);
步骤2:使它更全局
var key = '';
var selector = '';
switch (selectorIndex) {
case 0:
key = 'root';
selector = jQuery('.single-option-selector:eq(0)');
break;
case 1:
key = jQuery('.single-option-selector:eq(0)').val();
selector = jQuery('.single-option-selector:eq(1)');
break;
case 2:
key = jQuery('.single-option-selector:eq(0)').val();
key += ' / ' + jQuery('.single-option-selector:eq(1)').val();
selector = jQuery('.single-option-selector:eq(2)');
}
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- 你能用来自数组的属性名称生成一个对象吗
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- Protractor:element.getText()返回一个对象,而不是String
- 如何使用jQuery添加另一个对象的高度作为边距
- 计算从一个对象到另一个对象的路径并沿其移动
- 如何将一个对象添加到每个对象数组中
- 为了避免创建全局变量,可以将所有变量分配给一个对象吗
- 将javascript对象(属性+值)合并到一个对象中
- 尝试简化检查对象键是否为true并将其推送到另一个对象
- 从 javascript 中的对象方法返回一个对象
- 响应应包含一个对象,但得到的却是GET操作的数组
- js:如何制作一个循环,将20个不同的东西添加到一个对象中
- 为什么我得到这个错误'TypeError undefined不是一个对象…'包括Shopify链接产品选