【问题标题】:javascript function to save data in global variablesjavascript函数将数据保存在全局变量中
【发布时间】:2014-01-30 21:49:15
【问题描述】:

我无法让这个函数 (addMe) 将来自 img 的数据和来自 div childBox 的数据保存在两个全局数组中? 我认为该功能有问题,但看不到是什么。 这是我的code

全局变量://在函数初始化之前

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 文本不会出现在新窗口中。它们是否保存在数组中?

【问题讨论】:

  • 我认为你应该将变量声明为一个数组。

标签: javascript html css


【解决方案1】:

我想提两件事;

var imgSrclist;
var imgSpanlist;

应该声明为一个数组并且

function init() {

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

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

我已经更新了以上两个更改,这里是你的code

【讨论】:

  • 谢谢,这有点帮助。但是数据仍然没有保存到数组中,新窗口只显示一个空白。嗯..
  • 嘿,当我检查代码时,我不明白你真正想要做什么,再次出现与声明变量相关的一些错误。您首先将 imgSrclist 声明为数组,然后在 init 函数中将其分配为 null。除此之外,我已经进行了更改,希望这对您有用,这里是代码更改。 jsbin.com/ukeWEDO/7/edit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 2011-05-31
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多