我有一个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');
}
});
}
});
});
答案 0 :(得分: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');
}
}
});
});
如果您正在处理支付网关或类似网站,请先参阅他们的文档 - 他们将指定您如何通过自己的网站与他们进行互动。