【问题标题】:Comparing numbers from a JSON result with jquery将 JSON 结果中的数字与 jquery 进行比较
【发布时间】:2012-07-14 14:30:57
【问题描述】:

我正在尝试将来自 ajax 请求 (json) 的一些数据的值与预定义的数字进行比较,然后输出一些 HTML 作为结果。

基本上,如果 x 大于 y,则显示 'this'。

我将 ajax 请求中所需的位保存为:

var x = [];
var y = [];
var z = [];

我相信这些是数组(不确定当我马上解决我的问题时这是否会产生影响?)

然后我想将 x、y 和 z 与一些预设数字进行比较并输出一些结果。这是我到目前为止所得到的……

if(x > '3') {
    //do some stuff
}
else if(x > '2') {
    //doing something else
}
else if(y > '5') {
    //do this other thing
}
else if(z == '20') {
    //do that
}
else {
    //do the rest
}

这不起作用,因为某些值是两位数,所以我认为我必须使用我已经尝试过的 parseInt,就像这样......

if(parseInt(x, 10) > '3') {
    //do some stuff
}
else if(parseInt(x, 10) > '2') {
    //doing something else
}
else if(parseInt(y, 10) > '5') {
    //do this other thing
}
else if(parseInt(z, 10) == '20') {
    //do that
}
else {
    //do the rest
}

但是,这不起作用,但也没有给我任何错误。我很确定 switch 语句也会更好,但我觉得不是导致问题的原因。

我是一名设计师,正在努力掌握 jquery,所以请原谅我的天真,非常感谢任何帮助。提前致谢。

【问题讨论】:

  • 你是如何获取json的?如果你把东西放在最后 else 它会执行吗?
  • 在这里您可以看到比较的工作原理:jsfiddle.net/h6CC2
  • @EH_watch json 是这样调用的... $.ajax({ cache: false, type:'GET', url:"urlgoeshere.com", data:"q=" + coords.latitude + "," + coords.longitude + "&format=json&num_of_days=2&key=apikeygoeshere", dataType:'jsonp', success:function(feed) { ...这一切都很好,因为我可以在控制台中看到结果。只是当我试图操纵它有点便盆的数据。

标签: jquery web-applications cordova parseint


【解决方案1】:

正如您最初所说,问题在于您正在将数组与数字进行比较,将数组的索引与数字进行比较..

【讨论】:

  • 如果我将 '[]' 替换为 '()' (大概是将变量保存为字符串,而不是数组),它似乎会中断?
  • 好问题!没有理由。我现在正在努力尝试正确保存变量,希望这会让我走上更好的轨道。不过感谢您的回答。
猜你喜欢
  • 2011-04-04
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多