2014-01-30 2 views
1

이 함수 (addMe)를 사용하여 두 개의 전역 배열에서 childBox의 img 및 span 데이터를 저장하는 데 문제가 있습니까? 함수에서 뭔가 잘못되었다고 생각하지만 무엇을 볼 수 없습니다. 이것은 내 code입니다.전역 변수에 데이터를 저장하는 javascript 함수

글로벌 VAR : // 기능을 초기화하기 전에

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);  
     } 
} 

데이터는 글로벌 variabels에 저장한다 단추. 새 창 스크립트 코드는 다음과 같이 시작합니다.

var imgSrclist = window.opener.imgSrclist; 
var imgSpanlist = window.opener.imgSpanlist; 

EDIT : 코드가 업데이트되어 배열이 선언됩니다. 그러나 문제는 imgsrc와 span 텍스트가 새 창에 나타나지 않는다는 것입니다. 그들은 배열에 전혀 저장되어 있습니까?

+0

배열로 vars를 선언해야한다고 생각합니다. – Praind

답변

0

제가 언급하고자하는 두 가지 사항이 있습니다.

var imgSrclist; 
var imgSpanlist; 

은 배열로 선언해야하고 배열로 이것들을 사용하지 않는 한

function init() { 

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

왜 그들은 배열로 선언된다.

위의 두 가지 변경 사항을 업데이트했습니다. 여기에 code입니다.

+0

고마워, 그게 조금 도움이되었다. 그러나 데이터는 여전히 배열에 저장되지 않습니다. 새 창에는 공백 만 표시됩니다. humm .. – toby

+0

이봐, 나는 변수를 선언하는 것과 관련된 몇 가지 실수가 있음을 확인하기 위해 정말로하고 싶은 것을 이해하지 못한다. 먼저 imgSrclist를 배열로 선언 한 다음 init 함수에 null을 할당합니다. 그 외에도 잘하면이 코드 변경 사항이 여기에 당신을 위해 작동합니다 변경했습니다. http://jsbin.com/ukeWEDO/7/edit –

+0

Worked. 정말 고맙습니다!!!!!!! – toby

관련 문제