我有这个 URL 格式:
http://localhost/find_retailers/index.html?modelCode=ABCD1234
我有一个 XML 文件,其中包括:
<products>
<product modelcode="ABCD1234">
<retailer id="1">
<name>Retailer One</name>
<logo>retailer_one.png</logo>
<url>http://www.retailer-one.com/ABCD1234</url>
</retailer>
</product>
<product modelcode="EFGH5678">
<retailer id="2">
<name>Retailer Two</name>
<logo>retailer_two.png</logo>
<url>http://www.retailer-two.com/EFGH5678</url>
</retailer>
</product>
等等
我有以下jquery:
<script>
$(document).ready(function(){
$.ajax({
type: "GET",
url: "xml/retailers_param.xml",
dataType: "xml",
success: function(xml) {
$(xml).find('product').each(function(){
function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}
var productUrl = getUrlVars()["modelCode"];
var modelcode = $(this).attr('modelcode');
if(modelcode == productUrl) {
$(this).find('retailer').each(function(){
var id = $(this).attr('id');
var name = $(this).find('name').text();
var logo = $(this).find('logo').text();
var url = $(this).find('url').text();
$('<div class="retailer" id="retailer_'+id+'"></div>').html('<h3>'+name+'</h3><p><img src="img/logo/'+logo+'" alt="'+name+'" class="logo"/></p><div class="btnVisit"><a href="'+url+'" class="btnStyle" target="_blank"><span>Visit Store</span></a></div>').appendTo('#retailers');
});
}
else {
$('<div class="noRetailer"></div>').html('<h3>No Retailers for:</h3></br>'+productUrl+'').appendTo('#retailers');
}
});
}
});
});
</script>
问题是它为 XML 文件中的每个产品节点运行。这意味着它会显示产品以及 XML 文件中每个产品节点的错误消息。
我已经尝试return(false);
在 else 语句中包含,但这不起作用,因为它停止通过第一个 XML 节点。
有任何想法吗?
如果我将 else 节点留空或将其删除,那么一切都很好,但出于 UX 原因,我真的想包含一个“没有零售商用于 'modelcode'”类型错误。