#javascript
#javascript
Вопрос:
В этом коде subKeys
есть некоторые значения, которые извлекаются из cookie, подсказка сообщения cval: 3
, но я не смог поместить каждое subKeys
значение в stack
массив, который stack
всегда пуст.
var stack = new Array();
var temp = document.cookie;
//alert("cookie: " temp);
function upSelect() {
temp = temp.replace("tutorSelect=","");
subKeys=temp.split(",");
for(var i=0;i<subKeys.length;i ) {
alert("cval: " subKeys.length);
//push to stack?
stack.push(String(subKeys[i]));
alert("stack: ",stack.length);
document.getElementById("t" subKeys[i]).src="tta/rem.png";
}
}
Ответ №1:
Иногда это мелочи, которые беспокоят больше всего. Это способ, которым вы пытаетесь указать длину стека: вместо if alert("stack: ",stack.length);
(результатом будет: ‘stack: ‘), используйте: alert("stack: " stack.length);
or alert(["stack: ",stack.length].join(''))
или rewrite alert
, чтобы он мог получать несколько аргументов:
window._alert = alert;
window.alert = function(){
_alert(Array.prototype.slice.call(arguments).join(''));
}
Комментарии:
1. хорошо, отлично, что решили это, это ошибка программирования с actionscript.
Ответ №2:
Предполагая, что в нем temp
что-либо есть, этот код будет успешно запущен stack
. Но я думаю, что ваш alert
может быть испорчен:
alert("stack: ",stack.length);
// ^--- here
Вы, вероятно, хотели
там, alert
принимает только один аргумент.
Примеры (я начал с temp = "one,two,three"
на случай, если у вас нет файлов cookie для jsbin.com ):
Ваша версия (отображается stack:
, но не имеет длины)
Рабочая версия (показывает stack: 1
, затем stack: 2
, затем stack: 3
)