0

我有一个格式为 xml 的文件:

<cart>
<itemCount>1</itemCount>
<cartTotal>33.94</cartTotal>
</cart>

这是为了跟踪电子商务购物车的内容。所以它总是只有一个“购物车”节点。

我想阅读“cartTotal”字段。如果它大于 0,那么我想在网站上显示我的“查看购物车”按钮。

我尝试了以下方法,但它不起作用:

$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "https://www.example.com/file.xml",
        dataType: "xml",
        success: function(xml) {
            $(xml).find('cart').each(function(){
                if (($(this).attr('cartTotal')) > 0) {
                    $("a.view-cart-button").css('visibility', 'visible');
                }
            });
        }
    });
});
4

1 回答 1

1

其中的元素<cart>...</cart>不是属性而是子节点

代替:

if (($(this).attr('cartTotal')) > 0) {
    $("a.view-cart-button").css('visibility', 'visible');
}

和:

if ( $('cartTotal',$(this)).text()*1 > 0) {
    $("a.view-cart-button").css('visibility', 'visible');
}

修正案

需要注意的是,使用 AJAX 在另一个域上调用 XML 文件并且没有CORS访问,这将失败,请尝试以下操作:

$(document).ready(function(){

    $.ajax({
        type: "GET" ,
        url: "https://secure.ultracart.com/cgi-bin/UCJavaScript?merchantid=DEMO&type=xml" ,
        dataType: "xml" ,
        success: function(xml) {
            if( $(xml).find('cartTotal').text()*1 > 0 ){
                $("a.view-cart-button").css('visibility', 'visible');
            }
        }
    });

});​

如果您正在处理支付网关或类似的东西,请首先参考他们的文档 - 他们将指定您如何从您自己的网站与他们进行交互。

于 2012-11-15T02:32:38.980 回答