Jquery 处理XML文件时出现问题
我正在使用JQuery检索XML文件。XML文件是根据JQuery传递给它的参数动态生成的(PHP)。例如,我请求关于三个ID的信息(在本例中:0ZJB001、5YH043、9TQ987)。返回的XML文件包含请求的ID和找到的项的列表。然后根据这些值更改跨度内容。我的工作很好,除非退回的物品少于要求的数量。因此,如果请求了三项,只返回了两项,那么JQuery-each语句只执行两次。相反,我需要它为每个ItemId执行,并从相应的ASIN项中检索详细信息,或者使用一些默认详细信息进行更新 示例XML文件格式(不精确,简化了): 试一试Jquery 处理XML文件时出现问题,jquery,xml,Jquery,Xml,我正在使用JQuery检索XML文件。XML文件是根据JQuery传递给它的参数动态生成的(PHP)。例如,我请求关于三个ID的信息(在本例中:0ZJB001、5YH043、9TQ987)。返回的XML文件包含请求的ID和找到的项的列表。然后根据这些值更改跨度内容。我的工作很好,除非退回的物品少于要求的数量。因此,如果请求了三项,只返回了两项,那么JQuery-each语句只执行两次。相反,我需要它为每个ItemId执行,并从相应的ASIN项中检索详细信息,或者使用一些默认详细信息进行更新 示例
谢谢你,阿伦。经过一些修改,它成功了。例如,我对return语句的“$(itemId).text()”和$(xml).find进行了更改。我不知道这是因为我的函数的方式还是什么(我通常使用PHP)。无论如何,谢谢你非常有用的回复。
<ItemLookupResponse>
<Items>
<Request>
<ItemLookupRequest>
<ItemId>0ZJB001</ItemId>
<ItemId>5YH043</ItemId>
<ItemId>9TQ987</ItemId>
<VariationPage>All</VariationPage>
</ItemLookupRequest>
</Request>
<Item>
<ASIN>0ZJB001</ASIN>
<OfferSummary>
<TotalNew>0</TotalNew>
<TotalUsed>0</TotalUsed>
<TotalCollectible>0</TotalCollectible>
<TotalRefurbished>0</TotalRefurbished>
</OfferSummary>
</Item>
<Item>
<ASIN>9TQ987</ASIN>
<OfferSummary>
<LowestNewPrice>
<Amount>1000</Amount>
<CurrencyCode>USD</CurrencyCode>
<FormattedPrice>$10.00</FormattedPrice>
</LowestNewPrice>
<TotalNew>1</TotalNew>
<TotalUsed>0</TotalUsed>
<TotalCollectible>0</TotalCollectible>
<TotalRefurbished>0</TotalRefurbished>
</OfferSummary>
</Item>
</Items>
</ItemLookupResponse>
foreach(Items) {
if(exists ItemId && ASIN) {
//update span with price
} else {
//update span with default text
}
}
function callback(xml){
var itemIds = xml.find('Request ItemLookupRequest ItemId');
var items = xml.find('Items > Item');
itemIds.each(function(idx, itemId){
var item = items.filter(function(idx, item){
return $(item).children('ASIN').text() == itemId;
});
if(item.length){
//update the span with item.find('FormattedPrice').text()
} else {
//update the span with default price
}
})
}