javascript函数将数据保存在全局变量中

时间:2014-01-30 12:31:12

标签: javascript html css

我有问题使这个函数(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文本没有进入新窗口。他们一直保存在阵列中吗?

1 个答案:

答案 0 :(得分:0)

我想提到的两件事是:

var imgSrclist;
var imgSpanlist;

应声明为数组并

function init() {

  imgSrc=[]; //Empty array
  imgSpan=[]; //Empty array
}

为什么将它们声明为数组,因为您没有将它们用作数组。

我已更新了上述两项更改,此处为您的code