我有问题使这个函数(addMe)从两个全局数组中的div子框中保存img和span的数据? 我觉得功能有些不对劲但看不出来。 这是我的code。
全局var://在函数init之前
var imgSrclist = [];
var imgSpanlist = [];
功能:
function addMe(obj) {
var el = document.getElementById(obj.getAttribute('data-img'));
var parent = el.parentNode.getElementsByClassName('childBox')[0],
imgSRC = parent.getElementsByName('img')[0].src,
spanTXT = parent.getElementsByTagName('span')[0].innerHTML;
if (obj.checked) {
imgSpanlist[el.id].imgSrc.push(imgSRC);
imgSrclist[el.id].imgSpan.push(spanTXT);
} else {
var imgIx = imgSrclist[el.id].imgSrc.indexOf(imgSRC),
spanIx = imgSpanlist[el.id].imgSpan.indexOf(spanTXT);
imgSrclist[el.id].imgSrc.splice(imgIx);
imgSpanlist[el.id].imgSpan.splice(spanIx);
}
}
数据应保存在全局变量上,因为当您按下按钮时,它将在稍后的新窗口中使用。新窗口的脚本代码以此开头:
var imgSrclist = window.opener.imgSrclist;
var imgSpanlist = window.opener.imgSpanlist;
编辑:代码现在已更新,因此声明了数组。但问题是imgsrc和span文本没有进入新窗口。他们一直保存在阵列中吗?
答案 0 :(得分:0)
我想提到的两件事是:
var imgSrclist;
var imgSpanlist;
应声明为数组并
function init() {
imgSrc=[]; //Empty array
imgSpan=[]; //Empty array
}
为什么将它们声明为数组,因为您没有将它们用作数组。
我已更新了上述两项更改,此处为您的code。