주어진 id 패턴의 범위를 반환하는 메서드가 있습니다. 이 배열은 생성되고 함수의 끝에서 배열의 값을 출력하여 테스트 할 때 모든 적절한 요소가 나타납니다. 함수 범위 배열 만들기 항상 반환 정의되지 않음
이
는 기능입니다 :function getAllSpansForID(sectionID) {
var foundAllSpans = false,
i = 1,
spanID,
span,
spanArray = new Array();
/* Keep looking until we found all the selection spans.*/
while (!foundAllSpans) {
spanID = sectionID + "-" + i;
span = document.getElementById(spanID);
/*
If we didn't get a span we can assume there are no more to find.
We are done with this loop.
*/
if (span == null) {
foundAllSpans = true;
console.log("Found all spans.");
}
/*
Else, add the span to the array we are going to return.
*/
else {
spanArray[i-1] = span;
i++;
}
}
console.log("returning spanArray.length: " + spanArray.length);
for (i = 0; i < spanArray.length; i++) {
console.log("spanArray[i].id: " + spanArray[i].id);
console.log("spanArray[i].outerHTML: " + spanArray[i].outerHTML);
}
return spanArray;
}
내 문제는 내가이 함수를 호출 할 때마다 반환 값은 항상 정의되지 않은 것입니다.
이 코드 : 때문에 범위 지정 문제 그러나 나의 정확한 상황에 맞게 없음으로 내가 returnign 배열을 SO에 많은 유사한 문제를 발견
Uncaught ReferenceError: spansArrray is not defined
:
var spansArray = getAllSpansForID(verseID),
length = spansArray.length;
항상이 오류가 발생합니다. spanArray.push(span)
및 spanArray.push.apply(spanArray, span)
을 사용하여 내 기간을 추가하는 방법을 포함하여이 방법을 변경하려고 시도했지만 아무 소용이 없습니다. 나는 아이디어가 없다.
왜 기능입니다 한 번 getAllSpansForID라는 이름이 붙고 다른 하나는 getAllSelectionSpansForVerse입니까? 정말 같은가요? –
'spanArray! == spansArrray' – Andreas
@Andreas 그들은 함수 안에서'spanArray'라고하고, 외부에서는'spansArray'라고 부릅니다. 그래서 괜찮을 것입니다. – Xymostech