从Ajax响应中获取Element值

时间:2014-08-08 09:04:07

标签: javascript jquery ajax

我是Jquery和Ajax调用的新手......这是我的电话:

$(document).ready(function () {
  $.ajax({
    type: "GET",
    url: "some url",
    success: function(response){
      console.log(response);
    }  
  })
});

控制台日志显示此响应:

{"2014/08/08":[{},{"TEST":0}]}

如何将TEST的值保存到变量中?

var t = document.getElementById('test').value类似

4 个答案:

答案 0 :(得分:1)

使用JSON.parse

$(document).ready(function () {
  $.ajax({
    type: "GET",
    url: "some url",
    success: function(response){
      try{
        json = JSON.parse(response);
        test = null;
        $.each(json,function(i,item){
            test = item[1].TEST;
        });
        alert(test);//this is what you want
      }catch(e){}
    }  
  })
});

答案 1 :(得分:1)

  1. 来自服务器的响应是json,因此处理它的最佳方法是告诉jQuery期望json答案并将其转换为常规javascript对象。这是通过在dataType: 'json'电话中添加$.ajax(...)来完成的:

    $.ajax({
      type: "GET",
      url: "some url",
      dataType: "json",
      success: function(response){
        console.log(response);
      }  
    })
    

    您也可以使用快捷方式$.getJSON(...)

    $.getJSON("some url", function(response){ console.log(response); });
    
  2. 既然你有一个普通的javascript对象,你可以使用其他答案建议:

    success: function(response) {
        console.log(response["2014/08/08"][1].TEST);
        // or
        $.each(response, function(i, itm) {
             console.log(itm[1].TEST);
        };
    }
    

答案 2 :(得分:0)

试试这个,

$.each(response,function(i,value){
   alert(value[1].Test);
});  

答案 3 :(得分:0)

“想要将TEST的值保存到变量”试试这个:

var t = response["2014/08/08"][1].TEST;

Demo