jQuery函数(JSON数据调用)适用于ASP页面,但不适用于相同的HTM页面



我有一个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();
});

最新更新