2012-04-27 36 views
0

我有下面的代碼。現在我想運行一個if-else語句,但它不起作用。有這個想法嗎?如何在jquery上運行if-else語句?

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 2012-04-27 12:06:35

回答

0

你宣稱 「無功」 與資本V,而這條線:

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

此外,訪問數組[索引]的元素,而不是不用彷徨(index)

這裏是編輯代碼:

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 2012-04-27 12:00:47

+0

嘗試使用parseInt()也使用===作爲運算符而不是== – 2012-04-27 12:24:19

+0

我試過這個if(newArr [0] == parseInt(newVal))仍然沒有工作:( – helpdesk 2012-04-27 12:43:14

3

只需使用newArr[0]代替newArr.get(0)

+0

我已經使用過。仍然如果 - 否則不工作 – helpdesk 2012-04-27 12:28:31

+1

'排序'方法將數組值排序爲文字而不是數字。你應該提供一個自定義的排序函數,像這樣:'newArr.sort(function(a,b){return a-b})' – phantasm 2012-04-27 13:02:46

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?說,如果我有這樣的事情:var num1 = 50;現在設置它看起來像這樣:\t $('#textid').val(num1);這個工作嗎? – helpdesk 2012-04-27 13:37:55

+0

是的確定..它會工作.. – 2012-04-27 14:28:18

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在jquery中的if-else條件:(請參閱 – helpdesk 2012-04-27 12:17:11

+0

JSFiddle。或者至少是腳本的輸入。 – Dennis 2012-04-27 12:46:25

+0

好的,我讀了jquery.so中沒有if-else語句,我想要做的是顯示if-else條件。如果使用(「body」)。html()標記,會發生什麼情況?它會在新的頁面上顯示信息,或只是拋出一個流行的圖標,然後顯示在那裏? – helpdesk 2012-04-27 12:50:53