Javascript jQuery循环数组,其中包含div内容和html2canvas
我有一个名为Javascript jQuery循环数组,其中包含div内容和html2canvas,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个名为listArray()的数组,它包含两个属性pageNumber和content 属性content保存容器div html。这是很有用的,因为我有一个分页,我不会将信息实时保存到数据库中,而是插入到一个数组中,直到最后插入到数据库中 $container = $('#container'); $.each(listArray, function(index, value){ // So, for each index in array // it must em
listArray()
的数组,它包含两个属性pageNumber
和content
属性content
保存容器div html。这是很有用的,因为我有一个分页,我不会将信息实时保存到数据库中,而是插入到一个数组中,直到最后插入到数据库中
$container = $('#container');
$.each(listArray, function(index, value){
// So, for each index in array
// it must empty the container
// to receive a new value
$container.empty();
$container.append(value.content); // value.content = pure html
html2canvas($container, {
height: $container.height() + 180,
onrendered: function(canvas) {
var data = canvas.toDataURL('image/png');
var file = dataURLtoBlob(data);
var formObjects = new FormData();
formObjects.append('file', file);
$.ajax({
url: 'ajax_saveImage',
type: 'POST',
data: formObjects,
processData: false,
contentType: false,
});
}
});
});
正如您所看到的,我的最终目标是保存两个或三个甚至更多的图像。我的问题是,所有图像都在保存中,但都包含(数组的)最后一个索引内容。已解决 解决方案不是循环,而是调用函数所需的次数。看了这个话题后,我想到了解决办法
var i=0;
函数saveIt(){
$container.empty();
如果(i)
var i = 0;
function saveIt(){
$container.empty();
if(i <= listArray.length - 1){
$container.append(listArray[i]['content']);
html2canvas($container, {
height: $container.height() + 180,
letterRendering: true,
onrendered: function(canvas) {
var data = canvas.toDataURL('image/png');
var file = dataURLtoBlob(data);
var formObjects = new FormData();
formObjects.append('file', file);
$.ajax({
url: 'ajax_saveImage',
type: 'POST',
data: formObjects,
processData: false,
contentType: false,
});
i++;
saveIt(); // Important! - call the function again
}
});
}
}