javascript - 如何在此 jQuery .each() 循环中解析 "undefined"?

标签 javascript jquery arrays undefined

我正在使用 Shopatron API,下面的大部分代码都是从他们的示例中采用的。应该注意的是,我正在使用他们的 API 库进行调用,并且它正在从那个 Angular 进行连接和工作。我正在根据需要输出所有内容,但由于在我尝试循环 .each()数组中的图像。

作为引用,这里是 console.log(data); 的屏幕截图,我正在“拉动”Shopatron 中的产品。

enter image description here

我在这里添加了一些红色箭头来指出我感兴趣的内容。主要是我想遍历该图像数组,以便输出其他图像。您可以在下面看到我试图在我的 .each(); 循环中获取 URL 的位置,它却给了我 undefined

现在这里有一个 console.log(this.url); 来 self 的函数和 .each(); 循环,所以它只分离出那些图像数组。

enter image description here

如您所见,我正在获取 URL,这很好。但是我也得到了 undefined ,当我试图用它来附加 img 标签时,它会这样输出。

现在我将向您展示我用来执行所有这些操作的代码。您可以在第一个屏幕截图中看到许多其他功能调用产品选项和价格以及垃圾信息。所有这些都在起作用。我只有图像有问题,所以我将它隔离到那个函数。

var partNumber = '<?php echo $productID; ?>';
        $(document).ready(function() {
            Shopatron.getProduct({
                partNumber: partNumber
            },{
                success: function(p) {
                    outputProductName(p);
                    outputProductImage(p); // Here's the function up here
                    outputProductPrice(p);
                    outputDescription(p);
                    outputSpecs(p);
                },
                templateFriendly : false                                
            }
        );



        function outputProductImage(data) {

        var target = '#shopatron_product_image';
        var clickFunction = 
        $('#shopatron_product_image').html('<img src="' + data.image + '">');

        // Here's my loop that is giving me undefined...                                                        
        $(data.images).each(function() {

        $('#shopatron_additional_images').append("<li><a href='" + this.url + "' onclick=\"swapImage('#shopatron_product_image', '" + this.url + "'); return false;\"><img src='" + this.url + "'></a></li>");

        });

        return;
        }

这是我得到的用于踢球的输出的控制台屏幕截图。

enter image description here

感谢您的建议和帮助。

最佳答案

我相信这是因为 data.images 不是 dom 元素,而您正试图从中创建 jQuery 对象。

代替:

$(data.images).each(function() {

    $('#shopatron_additional_images').append("<li><a href='" + this.url + "' onclick=\"swapImage('#shopatron_product_image', '" + this.url + "'); return false;\"><img src='" + this.url + "'></a></li>");

});

尝试:

$.each(data.images, function(i, image){
   $('#shopatron_additional_images').append("<li><a href='" + image.url + "' onclick=\"swapImage('#shopatron_product_image', '" + image.url + "'); return false;\"><img src='" + image.url + "'></a></li>");
})

这是 jQuery 的数组和对象通用迭代器。

关于javascript - 如何在此 jQuery .each() 循环中解析 "undefined"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617230/

相关文章:

c# - 创建动态公式

javascript - 在 Chrome 浏览器或其他带有 URL 栏的浏览器中滚动时,如何在没有页面 'vh' 的情况下使用响应式 "jumping"尺寸

c - 后续调用 c 中的 fgets 函数未得到所需结果

javascript - 在 Blogger XML 文件中使用 javascript 显示帖子的所有标签

javascript - Handlebars 模板访问 DOM 中的元素

javascript - 访问json中的数据未获取 key

python - 将 numpy 数组传递给 C++ 函数并返回 numpy 数组作为输出的最有效方法是什么?

php - 如何使用 php 将 API 数据(数组)存储到数据库中

javascript - 正则表达式 - 去除第一个和第二个正斜杠之间的文本

javascript - 如何制作 Google Maps API v3 六边形平铺 map ,最好是基于坐标的 map ?