#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)
свою функцию для добавления выбранного значения в свой массив.