Вход

Просмотр полной версии : Помогу получить индекс элемента массива


visman
02.05.2014, 22:26
Есть html форма и скрипт. Скрипт перебирает элементы массива b. Если значение какого-либо элемента массива совпадает со значением выбранным пользователем в списке (переменная a), то нужно показать индекс этого элемента. У меня сейчас выводятся все индексы 0 1 2...а нужен только тот который выбрали. Как это сделать?

<form name="revers">
<table>
<tr>
<td>
<select id="height">
<option value="0">160</option>
<option value="1">161</option>
<option value="2">162</option>
</select></td>
</tr>
<tr>
<td><input type="button" value="Calculate"
onclick="calculate( );"></td>
</tr>
</table>
</form>
<script>
function calculate( ) {
var a = height.options[height.selectedIndex].text;
var b = [161,162,163];
for (i = 0; i < b.length; i++) {
if (b[i] = a)
document.write(i);
}
}
</script>

рони
02.05.2014, 22:32
Если значение какого-либо элемента массива совпадает со значением выбранным пользователем в списке (переменная a), то нужно показать индекс этого элемента.
этого в вашем коде нет!
и
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:


... ваш код...



О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

BETEPAH
02.05.2014, 22:37
тема звучит как объявление в рубрике "Услуги" :)
обратите внимание на эту строкуvar a = height.options[height.selectedIndex].text;
и тем более на эту
if (b[i] = a)

visman
02.05.2014, 22:41
я неделю как учу яваскрипт....пожайлуста скажите в чем именно проблема...

visman
02.05.2014, 22:45
<form name="revers">
<table>
<tr>
<td>
<select id="height">
<option value="0">160</option>
<option value="1">161</option>
<option value="2">162</option>
</select></td>
</tr>
<tr>
<td><input type="button" value="Calculate"
onclick="calculate( );"></td>
</tr>
</table>
</form>


function calculate( ) {
var a = height.options[height.selectedIndex].text;
var b = [161,162,163];
for (i = 0; i < b.length; i++) {
if (b[i] = a)
document.write(i);
}
}

рони
02.05.2014, 22:56
visman,
основная проблема в 5 строке в функции - вам уже это сказали

рони
02.05.2014, 23:00
visman,
прочтите первые строки тут только внимательно
http://learn.javascript.ru/comparison

Aetae
03.05.2014, 03:23
Ещё полезно будет это:
http://alljs.ru/articles/document-write