2012-04-27 2 views
0

У меня есть код ниже. Теперь я хочу запустить на нем инструкцию if-else, но она не работает. Любая идея с этим?Как запустить инструкцию if-else на jquery?

var num1 = $('#id1').val(); 
var num2 = $('#id2').val(); 

var newVal = (num1+2)*(num2/4); 
var nextVal =(num1+4)*(num2/2); 
var newArr = new Array(); 
newArr.push(newVal); 
newArr.push(nextVal); 

newArr.sort(); 

if(newArr.get(0)==newVal) 
$("body").html("<p>works fine!</p>"); 
else $("body").html("<p>works awfully!</p>"); 
+0

Не забудьте упомянуть, что вы испытываете, когда что-то «не работает» – veeTrain

ответ

0

Вы объявили "Var" с заглавной V на этой линии:

Var newVal = (num1+2)*(num2/4); 

Кроме того, элементы массива доступа с [индекс], вместо .get (индекс)

Здесь отредактированный код:

var num1 = 50; 
    var num2 = 100; 

    var newVal = parseInt((num1+2)*(num2/4)); 
    var nextVal =parseInt((num1+4)*(num2/2)); 
    var newArr = new Array(); 
    newArr.push(newVal); 
    newArr.push(nextVal); 

    newArr = newArr.sort(function(a,b){return a - b}); 

    if(newArr[0]==newVal) 
    $("body").html("<p>works fine!</p>"); 
    else 
    $("body").html("<p>works awfully!</p>");​ 
+0

Я пробовал все эти модификации, которые все еще не имеют успеха. На самом деле, он работал на начальном этапе, но внезапно остановился и до сих пор трудно было понять, что не так :( – helpdesk

+0

Попробуйте использовать parseInt() также использовать === как оператор вместо == –

+0

Я попробовал это, если (newArr [0] == parseInt (newVal)) все еще не работает :( – helpdesk

3

Просто используйте newArr[0] вместо newArr.get(0)

+0

я уже использовал это. все еще if-else не работает – helpdesk

+1

'sort' метод будет сортировать значения массива как литералы вместо чисел. вы должны предоставить настраиваемую функцию сортировки, например: 'newArr.sort (function (a, b) {return a-b})' – phantasm

0

Попробуйте

var num1 = 50; 
    var num2 = 100; 

    var newVal = (num1+2)*(num2/4); 
    var nextVal =(num1+4)*(num2/2); 
    var newArr = new Array(); 
    newArr.push(newVal); 
    newArr.push(nextVal); 

    newArr.sort(); 

    if(newArr[0]==newVal) 
    $("body").html("<p>works fine!</p>"); 
    else 
    $("body").html("<p>works awfully!</p>"); 
+0

любая идея, как установить текстовое поле в jquery? say, если у меня есть что-то вроде этого: var num1 = 50, теперь настройка выглядит так: \t $ ('# textid'). val (num1); будет ли это работать? – helpdesk

+0

да конечно .. это сработает .. –

1

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

var num1 = +$('#id1').val(); // Now you get 5 instead of "5" 
var num2 = +$('#id2').val(); 

//The problem shows up here when you are doing string concatenation instead of addition in the first set of parenthesis 
var newVal = (num1+2)*(num2/4); 

if(newArr[0]==newVal) // .get is for jQuery collections, just use brackets on an array 
+0

все, кажется, работает отлично excep t условие if-else в jquery :( – helpdesk

+0

JSFiddle, пожалуйста. Или, по крайней мере, входные данные для вашего скрипта. – Dennis

+0

ok, я читал, что в Jquery.so нет инструкций if-else, поэтому я хочу показать условия if-else. что произойдет, если используется тег (body) .html()? будет ли отображаться информация на новой странице или просто выкинуть поп-значок, а затем отобразить его там? – helpdesk

Смежные вопросы