我有一个jQuery函数,显示从JSON数据表调用的页面上的价格。我在一个Volusion网站工作,他们的框架是在ASP。对于网站上更干净的url,您可以设置"SEO"url,将页面显示为。htm url而不是。asp url。这段代码在ASP页面上工作得很好,但由于某种原因,在.htm页面上不起作用。我检查了页面并检查了控制台,没有得到关于此功能的任何加载错误。我想知道为什么它会在ASP页面上工作,而不是在HTM页面上。从字面上看,当你做SEO URL时,唯一改变的是URL本身。
下面是函数(注意JSON表有两个键:item和price)。它所做的是从JSON表中寻找一个span(或div)与'item'键的值,并使用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();
});
谢谢你的帮助!
我看到你的getJSON url是相对于当前文档的,而不是站点根。
我猜是SEO url有一个不同的文件夹结构,比如
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();
});