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

时间:2013-04-16 23:15:43

标签: jquery html json volusion

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

感谢您的帮助!

1 个答案:

答案 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();
});