глобальный массив javascript

#javascript

Вопрос:

У меня ниже html-код, и я пытаюсь добавить новые значения в глобальный массив, изменив функцию javascript.Я пытаюсь сделать так, как показано ниже.Но это приводит к ошибкам javascript.Пожалуйста, предложите кому-нибудь, как это сделать.

 <html>
<head>
<script>
var list=[];
function getList(value){

list=list(value);
}
</script>

</head>

<body>

<tr>
<td>
<select name="test" onchange="getList(this)">
<option id="1" value="one">One</option>
<option id="2" value="two">two</option>

</select>
</td>
</tr>
<tr>
<td>
<select name="test1" onchange="getList(this)">
<option id="3" value="three">three</option>
<option id="4" value="four">four</option>

</select>
</td>
</tr>

</body>
</html>
 

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

1. Как насчет того, чтобы рассказать нам, в чем заключается ошибка? list Определена ли где-нибудь функция (я думаю, нет)? Я предлагаю вам сначала прочитать учебник по JavaScript: developer.mozilla.org/en/JavaScript/Guide

Ответ №1:

Измените свой Javascript на следующий

 var list=new Array; ///this one way of declaring array in javascript
function getList(value){

list.push(value);//push function will insert values in the list array
}
 

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

1. Спасибо,значения добавляются в следующий индекс или в тот же индекс?

2. Нет необходимости менять [] на new Array

3. @user569125: list.push() добавит значения в следующий индекс

Ответ №2:

Добавление значений в массив довольно просто, все, что вам нужно сделать, это вызвать push(..) метод.

Вот так:

 var list = [ ];
list.push(1);

console.info(list); // Outputs: [ 1 ]
 

Ответ №3:

Самый простой способ добавить значение в массив в JavaScript, это использовать push метод (если вам не нужно поддерживать IE5):

 function getList(value) {
  list.push(value);
}
 

Две вещи:

  • В вашем случае это добавит ссылки на выбранные элементы в список. Скорее всего, это не то, чего вы хотите. Что именно вы хотите добавить?
  • getList на самом деле это не совсем подходящее название для этого. addToList наверное, так было бы лучше.

Ответ №4:

В настоящее время вы передаете в свою функцию весь элемент select, а не выбранное значение. Вы можете передать выбранное значение следующим образом:

 getList(this.options[this.selectedIndex].value)
 

Затем вы можете использовать list.push(value) свою функцию для добавления выбранного значения в свой массив.