我有一个jQuery函数,它显示从JSON数据表调用的页面上的价格。我在Volusion网站上工作,他们的框架在ASP中。对于站点上更清晰的URL,您可以设置“SEO”URL,将页面显示为.htm URL而不是.asp URL。此代码在ASP页面上运行良好,但由于某些原因在.htm页面上不起作用。我检查了页面并检查了控制台,并没有收到有关此功能的任何加载错误。我想知道为什么它可以在ASP页面上工作,而不是在HTM页面上。字面上,当您执行SEO URL时,唯一改变的是URL本身。
这是函数(注意JSON表有两个键:item和price)。它的作用是从JSON表中找出带有'item'键值的span(或div),并使用jQuery html()函数写出'price'键的值:
$(document).ready(function () {
function ShowPrices() {
$.getJSON("json_data.js", function (data) {
$.each(data, function () {
$('[id*="' + this['item'] + '"]').html(' ' + this['price']);
$('[id*="' + this['item'] + '"]').val(this['price']);
});
});
}
ShowPrices();
});
感谢您的帮助!
答案 0 :(得分:1)
我看到你的getJSON网址是相对于当前文档而不是网站根目录。
我的猜测是SEO网址有不同的文件夹结构,如
ASP版http://sitedomain.com/aspfolderpath/page.aspx
SEO版http://sitedomain.com/some/other/path/page.htm
在这种情况下,您的功能需要是:
$(document).ready(function () {
function ShowPrices() {
$.getJSON("/aspfolderpath/json_data.js", function (data) {
$.each(data, function () {
$('[id*="' + this['item'] + '"]').html(' ' + this['price']);
$('[id*="' + this['item'] + '"]').val(this['price']);
});
});
}
ShowPrices();
});