json数据未在python中使用jquery加载

Posted

技术标签:

【中文标题】json数据未在python中使用jquery加载【英文标题】:json data not loaded using jquery in python 【发布时间】:2013-03-30 17:41:25 【问题描述】:

jquery 正在完美加载,但未加载 json 数据。我也没有收到任何错误。

脚本是

$("#loadjson").click(function()
$.getJSON('filename.json', function(data) 
  var items = [];

  $.each(data, function(key, val) 
    items.push('<li id="' + key + '">' + val + '</li>');
  );

  $('<ul/>', 
    'class': 'my-new-list',
    html: items.join('')
  ).appendTo('body');
);
);

json 文件是


  "name": "samsung",
  "product": "led tv",
  "rate": "23,000"

模板是

<head>
<ul></ul>
<button>loadjson</button>
% block js-custom %
% load static %
<script src=" STATIC_URL scripts/jquery-1.9.1.min.js"></script>
<script src=" STATIC_URL scripts/modernizr-2.0.6.min.js"></script>
<script src=" STATIC_URL scripts/myscript.js"></script>
% endblock %
</head>

这是在屏幕上显示名称、产品和价格。

脚本加载正常,我也没有收到错误消息。Nut 我没有收到 o/p。我以为 jon 文件没有加载。请帮我这样做。

如果必须进行任何更改才能使用此代码,请指导我。

【问题讨论】:

不管怎样,Modernizr 目前最高到 2.6.2 尝试在 var items = []; 之后使用 data = $.parseJSON(data); 好的,我会得到相同的结果,但这是任何问题 你把json文件的路径放对了吗? 【参考方案1】:

使用append()html()li 附加到创建的ul 试试这个

$('<ul/>', 
'class': 'my-new-list'
).html(items.join('')).appendTo('body');

【讨论】:

您可以通过 get 方法检查您的响应。在var items = []; 之前写入console.log(data) 并检查您是否在控制台中获取了仪式数据 我这样做了,在调用堆栈 4 和第 5 行得到“匿名函数”,断点发生在第 5 行 在控制台窗口中没有显示它是完全空白的 您好,我收到 DOMException 会是什么问题 @bipen - 我的想法和你一样,但我很惊讶刚才得知 jQuery 确实 允许你使用 @ 设置元素的内部 HTML 987654328@ 作为 OP 使用。例如,在 javascript 控制台中尝试:$('&lt;ul&gt;',html:'&lt;li&gt;test&lt;/li&gt;')[0].outerHTML【参考方案2】:

你的 HTML 都搞砸了。你把所有东西都塞进了&lt;head&gt;,而且你的&lt;button&gt; 上没有ID,所以你的点击处理程序永远不会设置。也没有 doctype,没有 &lt;html&gt; 元素,也没有 &lt;title&gt; 元素。首先,试试这个:

<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    % block js-custom %
    % load static %
    <script src=" STATIC_URL scripts/jquery-1.9.1.min.js"></script>
    <script src=" STATIC_URL scripts/modernizr-2.0.6.min.js"></script>
    <script src=" STATIC_URL scripts/myscript.js"></script>
    % endblock %
</head>
<body>
    <button id="loadjson">Load JSON</button>
</body>
</html>

另一个提示:您可能试图通过同时处理 Python 代码 HTML/JavaScript 来一次性解决太多问题。如果我这样做,我会从使用静态 HTML、JavaScript 和 JSON 文件开始。没有 Python,只有静态文件,您可以直接编辑,查看其中的确切内容,并使用浏览器的开发人员工具进行调试。 (我最喜欢的是 Chrome,或者您可以将 Firefox 与 Firebug 或最新版本 IE 中的内置开发人员工具一起使用。)

另外,在测试时使用 jQuery 和 Modernizr 的非缩小版本。这样您将看到有意义的代码和堆栈跟踪。

并使用W3C Validator 验证您的 HTML。

在您使用静态文件后,让您的 Python 代码生成相同的内容。这比试图同时找出双方更容易。

再想一想,如果您是 Python 专家并且唯一真正的问题是 HTML/JavaScript 方面,那么静态文件的想法可能并不那么重要。但至少您应该使用查看源代码和开发工具查看浏览器中的内容,因为这就是浏览器所看到的全部内容。它根本看不到您的 Python 代码,只看到从中生成的代码。

顺便说一句,这是一个很棒的introduction to the Chrome DevTools。还可以阅读Mozilla Developer Network (MDN) 上的优秀文档。事实上,当您在 Google 上查找任何与 HTML/CSS/JS 相关的项目时,将“mdn”添加到您的搜索以确保它为您找到 MDN 文档很有用,因为它们通常是最好的——任何主题的高质量文档。

【讨论】:

如果你不明白答案,你应该在尝试任何类型的 javascript 或 ajax 之前学习html。 您没有发布 views.py 文件,但我会先跳过该文件,然后让客户端使用静态文件。请参阅我的更新答案以获取建议。 @Michal geary 太好了,我从你那里得到了很多东西,我会遵循的,很抱歉我没有在 views.py 中编写函数来执行此操作。 不需要道歉,我的朋友!到目前为止,我很高兴这对您有所帮助 - 如果有任何其他问题,请及时回复。

以上是关于json数据未在python中使用jquery加载的主要内容,如果未能解决你的问题,请参考以下文章

Jquery文件未在浏览器上加载

Jquery Json Array 响应未在 Div 中打印

jQuery CDN 未在 LocalHost 上加载

未在 TableView 中重新加载正确的数据

jQuery ajaxy,历史应用程序未在本地主机上加载

jQuery 中的 .load 未在 IE6 中加载 cfcharts