0

我有下面的代码。现在我想对其运行 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>");
4

4 回答 4

3

只需使用newArr[0]而不是newArr.get(0)

于 2012-04-27T11:50:54.773 回答
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
于 2012-04-27T12:05:14.897 回答
0

您在这一行用大写 V 声明了“Var”:

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

此外,使用 [index] 访问数组的元素,而不是 .get(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>");​ 
于 2012-04-27T11:52:06.640 回答
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>");
于 2012-04-27T11:52:47.877 回答