Jquery响应加载

时间:2014-01-13 23:52:36

标签: javascript jquery html

jQuery函数使用GET从数据库接收字符串,之后我想将该字符串注入HTML而不是div。看起来非常标准的东西。 但是我不是很管理它。

以下是我的观点:

  <h1>Whatever</h1>
  <div id="replace_me">

  </div>
  <a id="click_me" href="#">Click Me</a>

<script>
//AJAX
var brand_id = 8
var dataX = {'brand': brand_id, 'csrfmiddlewaretoken': ""};
$(function(){
  $("#click_me").click(function(){  
    $.ajax({
      type: 'GET',
      url: '/ajax_request/',
      data: dataX,
      datatype: "json",

      success: function(data) {
          alert(data);
          $("#replace_me").load(data);
      },
      error: function() {
          alert("Nope...");
      }
  });
  });
});
</script>

当警报设置完毕后,我会收到我的字符串,显示一切正常,但是如何输入我刚收到的字符串“replace_me”,而不必从另一个网址加载?

2 个答案:

答案 0 :(得分:6)

您的success功能出错。检查jQuery load()的文档。相反,你应该做

  success: function(data) {
      //alert(data);
      $("#replace_me").html(data);
  },

或者,稍微好一点的风格

  success: function(data) {
      //alert(data);
      $("#replace_me").empty().append($(data));
  },

另请注意,您在数据类型选项中指定了“json”。因此,如果您的服务器以适当的JSON响应,则您的data将是一个JavaScript对象,因为jQuery将为您解析JSON格式。如果你真的想看到这个物体,你将需要使用,例如JSON.stringify()

 $("#replace_me").empty().append($(JSON.stringify(data)));

如果您的服务器没有生成有效的JSON,则在大多数情况下不会调用success方法。

答案 1 :(得分:1)

load()是一种方便的方法,用于执行调用ajax url的两个步骤,然后将数据全部放入单个函数中。而不是调用.ajax(),只需调用.load()

var brand_id = 8
var data = {'brand': brand_id, 'csrfmiddlewaretoken': ""};
$("#replace_me").load('/ajax_request/', data);