Проблема elseif
=> else if
, на которую указывает amurra, является вашей общей проблемой, но я также хотел бы предложить альтернативный подход, который использует массив идентификаторов элементов, а не if
s и else if
s. Например:
function showDiv() {
var myNumValue = document.getElementById('c').value,
myNum = Math.min(Math.floor(parseInt(myNumValue, 10) / 100), 6),
myDiv = ["div1", "div2", "div3", "div4", "div5", "div6", "div7"][myNum];
document.getElementById(myDiv).style.display = "block";
}
Намного лучше, правда? Живой пример по адресу: http://jsfiddle.net/AndyE/FFeLC/1/ :-)
Обратите внимание, однако, что это не совсем то же самое. В вашем примере, если значение было 300, тогда будет показан div3. В моем примере будет показан div4 (который, я думаю, скорее всего вам нужен). Если вы предпочитаете, чтобы это было в вашем коде, вы можете вычесть любую величину от 0 до 0,1 из myNumValue
после анализа (и до деления на 100), чтобы получить тот же результат, который вы ожидаете от своего кода.
Кроме того, это, вероятно, то, что вы действительно хотите: http://jsfiddle.net/AndyE/FFeLC/2/.