#javascript #syntax #comparison
#javascript #синтаксис #сравнение
Вопрос:
Я хочу проверить, является ли параметр запроса больше 12 или нет JavaScript.
Он всегда выдает предупреждение «меньше», даже когда я меняю значение q на 12.
Текущий URL-адрес: www.test.com?id=2
Как это можно сделать в JavaScript?
Комментарии:
1. Что вы имеете в виду, что оно всегда возвращает false? Вы ничего не возвращаете, вы
alert
вводите текст.2. Ваш заголовок и вопрос противоположны. Один запрашивает больше, другой запрашивает меньше. Ваш код проверяет, больше ли q 10.
3. Ваш код выглядит так, как будто он должен работать для меня. Какие проблемы вы видите?
4. В чем здесь проблема? jsfiddle.net/pfQ9D
5. Сопротивляясь желанию опубликовать решение jQuery только для лулзов…
Ответ №1:
Ваш код работает. Если оно возвращает true, то оно предупреждает о большем. Хотя вы должны добавлять точки с запятой в конце инструкций. Ваш код будет выглядеть следующим образом:
var q = 14;
if (q > 10)
alert('greater');
else
alert('Lesser');
Как сказал Дерек, если q === 10, то это будет означать «Меньше», потому что 10 не больше 10.
РЕДАКТИРОВАТЬ: здесь у вас есть 2 варианта. Либо используйте что-то вроде PHP, чтобы сделать q равным числу, подобному этому:
q = <?php echo $_GET['id']; ?>
Обратите внимание, что использование этого откроет ваш сайт для всех видов XSS, поэтому, если вы решите пойти этим путем, узнайте немного о безопасности и не спешите загружать его на живой веб-сайт.
Или, если вы хотите сделать это только с помощью JavaScript, сделайте это следующим образом:
q = location.href.substring(location.href.indexOf('id=') 3); //3 is the length of id=
q = parseInt(q, 10); //With substring, you get a string, so you have to parse it
10 является параметром основы, что позволяет избежать получения странных чисел для входных данных, таких как 010 (было бы 8 без параметра).
Комментарии:
1. @Amaan. Я получаю значение q из параметров запроса.
Ответ №2:
Для меня это выглядит нормально. Возможно, вы захотите включить точки с запятой после предупреждений, чтобы быть в безопасности. Кроме того, ваш тест не учитывает значение «равно», поэтому 10 сообщит «меньше», когда на самом деле оно равно.