1

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

谢谢你的帮助!

4

1 回答 1

1

我看到您的 getJSON url 是相对于当前文档的,而不是站点根目录。

我的猜测是 SEO url 具有不同的文件夹结构,例如

ASP版本http://sitedomain.com/aspfolderpath/page.aspx

搜索引擎优化版本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();
});
于 2013-04-17T00:54:06.703 回答