Javascript jQuery每个只返回最后一个元素,GoogleCharts API
我有下面的代码,它将接受一个数组,并将一个二维码动态附加到页面上,其中文本是数组中的一个元素Javascript jQuery每个只返回最后一个元素,GoogleCharts API,javascript,jquery,google-visualization,Javascript,Jquery,Google Visualization,我有下面的代码,它将接受一个数组,并将一个二维码动态附加到页面上,其中文本是数组中的一个元素 $(document).ready(function () { var list = ['dog', 'cat', 'mouse', 'hippo', 'ox']; var qrUrl = 'https://chart.googleapis.com/chart?'; //functions function
$(document).ready(function () {
var list = ['dog', 'cat', 'mouse', 'hippo', 'ox'];
var qrUrl = 'https://chart.googleapis.com/chart?';
//functions
function getQrCodes(array) {
$.each(array, function (ix, val) {
//options gets chl property redefined for each element
//in the array
var options = {
cht: 'qr',
chs: '300x300',
chl: array[ix]
}
qrOptionArray.push(options);
console.log('this qr should be: ' + array[ix]);
console.log(qrUrl + $.param(options));
var $img = $('img').attr('src', qrUrl + $.param(options)).appendTo('body');
});
}
getQrCodes(list);
});
您可以看到小提琴的控制台输出,尽管由于某些原因,QR码不会出现在小提琴窗口中,但它们会出现在我的本地机器上。我遇到的问题是,最后一个问题是,不管您可以看到阵列中每个元素的控制台输出变化,我得到的唯一QR码是阵列中重复X次的最后一个元素。即使控制台输出正确,每个QR罐都会扫描并打印“ox”。这是怎么回事 将图像附加到正文的选择器是错误的。您正在选择所有现有的
img
元素,而您希望创建一个新的元素。试试这个:
var $img = $('<img />').attr('src', qrUrl + $.param(options)).appendTo('body');
var$img=$('
注意:$(“”)
非$('img')
将图像附加到正文中的选择器错误。您正在选择所有现有的img
元素,而您希望创建一个新元素。请尝试以下操作:
var $img = $('<img />').attr('src', qrUrl + $.param(options)).appendTo('body');
var$img=$('
注意:$('')
不是$('img')
你在每次迭代中都要选择所有图像,更改源,并将它们移动到正文中。对我来说听起来像是逻辑错误。这或语法错误。你的小提琴不起作用,因为$('img'))
选择图像而不是创建图像。一旦我解决了这个问题,它似乎就起作用了:在每次迭代中,您选择所有图像,更改源,并将它们移动到正文中。对我来说,这听起来像是一个逻辑错误。这或语法。您的小提琴不起作用,因为$('img'))
选择图像而不是创建它们。一旦我解决了这个问题,它似乎就起作用了:是的,就是这样。前几天我做了同样该死的事情。谢谢,我开始抓我的头了:)没问题,很乐意帮忙。是的,就是这样。前几天我做了同样该死的事情。谢谢,我开始抓我的头了:)没问题,很乐意帮忙。