jQuery ajax未捕获类型错误

0 javascript ajax jquery google-maps

我正在尝试将Rails生成的json转换为地图上的Google Maps标记,但首先我只是尝试显示json,因为我是jQuery/JavaScript的新手,并试图理解它.

但是,我一直坚持使用我不理解的Chrome开发者控制台错误消息:

Uncaught TypeError: Object function $(element) { 
if (arguments.length > 1) { 
  for (var i = 0, elements = [], length = arguments.length; i < length; i++) 
  elements.push($(arguments[i])); return elements; 
} 
if (Object.isString(element)) element = document.getElementById(element); 
  return Element.extend(element); 
} has no method 'ajax'
Run Code Online (Sandbox Code Playgroud)

我尝试使用各种教程/示例中的代码,但没有一个工作.我的代码看起来像这样:

$.ajax({
    url: "http://localhost:3000/spots.json",
    success: function(html){
        $("#json").append(html);
    }
});
Run Code Online (Sandbox Code Playgroud)

所以这是从一个例子中得出的,这个想法只是为了显示json请求返回的内容.我的思维/代码中肯定存在一些根本性错误,因为我无法使其正常工作.

所以我的问题是:我应该如何阅读该错误,然后如何使这些代码从spots.json中获取json并在我的html中的#json-div中显示它?

谢谢!

**附录**

这是整个spots.js文件:

$(document).ready(function() {

var latlng = new google.maps.LatLng(60.17, 24.93);

var myOptions = {
  zoom: 12,
  center: latlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP
};

var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);

$.ajax({
    url: "http://localhost:3000/spots.json",
    success: function(html){
        $("#json").append(html);
    }
});
});
Run Code Online (Sandbox Code Playgroud)

spots.json看起来像这样:

[{"spot":{"address":"","category":"Ramppi","created_at":"2011-07-13T14:06:44Z","latitude":60.171916,"title":"Kiasman \"Design-ramppi\"","updated_at":"2011-07-13T14:06:44Z","id":1,"area":"Helsinki","description":"","longitude":24.935875}},{"spot":{"address":"","category":"Puuli","created_at":"2011-07-13T14:07:07Z","latitude":60.176526,"title":"Tattipuuli","updated_at":"2011-07-13T14:07:07Z","id":2,"area":"Helsinki","description":"","longitude":24.919395}}]
Run Code Online (Sandbox Code Playgroud)

pim*_*vdb 5

$查看代码中的定义,看起来您也在使用Prototype框架.使用多个库时的一个问题是它们是覆盖变量,主要是$.

在您的情况下,使用jQuery而不是$(so jQuery.ajax(...)),或使用jQuery.noConflict将其$恢复到jQuery.