сообщение об ошибке my array «не является функцией»

#javascript #jquery

#javascript #jquery

Вопрос:

Я пытаюсь сохранить некоторую информацию DOM в массиве, чтобы я мог использовать ее в другом месте.

Это работает, если я использую переменную, но если я пытаюсь использовать массив, я получаю сообщение об ошибке «Arrayname не является функцией»? Я не уверен, почему это будет работать в переменной, а не в массиве.

Это код, который я запускаю:

 function testmove(total) {
    for (var x=1; x<=total; x  ) {
        allstore(x) = jQuery('#block-views-items-block .views-row-1').children('div');
        x  ;
    }
}
  

Это работает:

 function testmove(total) {
    store1 = jQuery('#block-views-items-block .views-row-1').children('div');       
}
  

Я что-то упускаю / делаю что-то не так здесь?

Комментарии:

1. дело в том, что iexplore все еще поддерживает этот синтаксис (вплоть до версии 11). почему? какая это была версия ecmascript?

Ответ №1:

Если allStore это массив, вы должны использовать его следующим образом:

allStore[x]

Комментарии:

1. ha! боже мой, какой полный идиот. Что ж, это повод пойти и напиться вместо того, чтобы «быстро» исправить мой код в пятницу вечером. спасибо всем!

Ответ №2:

Вам придется использовать квадратные скобки, если вы хотите сослаться на массив:

 allstore[x] = ...
  

Дополнительную документацию по массивам JavaScript см. в MDN: Array.

Ответ №3:

Вам нужно использовать квадратные скобки для ссылки на индекс массива, подобный этому:

 allstore[x] = jQuery('#block-views-items-block .views-row-1').children('div');
  

Или, если вы не ищете определенный индекс, вы можете использовать Push-метод JavaScript следующим образом:

 allstore.push(jQuery('#block-views-items-block .views-row-1').children('div'));
  

Ответ №4:

Вы используете неправильные виды фигурных скобок; вам следует использовать квадратные скобки вместо круглых при доступе к элементам массива по индексу или ключу:

 allstore[x]