передача массива данных в функцию javascript

I
На сайте с 04.08.2006
Offline
112
13726

Есть жабаскриптовая функция:

function visible_param(id)

{
for (var key in id) {
var val = id [key];
var cont = document.getElementById(\'param_\' + val);
cont.style.display = \'!important\';
}
}

id - это массив, мне нужно что бы функция всем param_1, param_2, param_5 и т.д. поставила значение стиля дисплей.

Это все получается, но в функцию не получается передать массив.

передаю как: visible_param('1,2,3,4,5,6');

Значения идут не обязательно по порядку.

Подскажите как передать массив в яваскрипт?

Инновационный автомобильный проект. Экономия от 500 - 3000$ при покупке автомобиля (http://autoline24.com.ua) Магазин-блог уникальных полезных скриптов (http://ivashka.org.ua)
Jekyll
На сайте с 04.05.2009
Offline
136
#1

visible_param('1,2,3,4,5,6'); - это вы передаёте строку

Если мне не изменяет склероз, массив передаётся так:

visible_param({1,2,3,4,5,6});

gormarket
На сайте с 29.12.2010
Offline
47
#2

Вызывайте функцию так

visible_param(Array(1,2,3,4,5,6));

Или где-то создаете массив

var arrid = new Array(1,2,3,4,5,6);

а в нужный момент вызываете функцию, передавая его в качестве параметра

visible_param(arrid);

Товары и цены в магазинах Вашего города: Городской рынок (http://gormarket.ru/)
G
На сайте с 16.02.2011
Offline
42
#3

так?

var id = [ 1, 2, 3, 4, 5 ];

visible_param(id);
I
На сайте с 04.08.2006
Offline
112
#4
gormarket:
Вызывайте функцию так
visible_param(Array(1,2,3,4,5,6));

Или где-то создаете массив
var arrid = new Array(1,2,3,4,5,6);
а в нужный момент вызываете функцию, передавая его в качестве параметра
visible_param(arrid);

Спасибо. Помогло :)

ivashka добавил 24.05.2011 в 15:15

Но возникла следующая проблема:

Когда ид один тоесть, функция вызывается как

visible_param(Array(1));

то функция не работает, если же хотя бы 2 елемента массива visible_param(Array(1,2,)); то все работает просто отлично.

gormarket
На сайте с 29.12.2010
Offline
47
#5

Если всего одно число, то Array(N) означает создание пустого массива из N элементов (каждый из которых имеет значение "undefined")

Выход из положения, передать это число как строку (заключить в кавычки)

visible_param(Array("1"));

Возможен вариант передачи любого количества аргументов (не одной строкой, а отдельными числами или строками через запятую)

visible_param(1,2,3,4,5,6);

или

visible_param(1);

Тогда функция будет такой

function visible_param()

{

for(var i=0; i < arguments.length; i++) {

var val = arguments;
var cont = document.getElementById(\'param_\' + val);
cont.style.display = \'!important\';
}
}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий