私はこの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ファイル内のすべての製品ノードのエラーメッセージも表示することを意味します。
elseステートメントに含めようとreturn(false);
しましたが、最初のXMLノードを通過して進行が停止するため、これは機能しません。
何か案は?
elseノードを空のままにするか削除すると、すべて問題ありませんが、UXの理由から、「'modelcode'の小売業者はありません」というタイプのエラーを含めたいと思います。