通过jquery从xml文件打印一个值

时间:2015-05-25 16:10:11

标签: jquery xml

我有一个xml文件调用产品

<?xml version="1.0" encoding="UTF-8"?>
<ProductsRoot>
    <Products>
        <ProductID>1</ProductID>
        <ProductName>Chai</ProductName>
        <CategoryID>1</CategoryID>
        <QuantityPerUnit>10 boxes x 20 bags</QuantityPerUnit>
        <UnitPrice>18</UnitPrice>
    </Products>
    <Products>
        <ProductID>2</ProductID>
        <ProductName>Chang</ProductName>
        <CategoryID>1</CategoryID>
        <QuantityPerUnit>24 - 12 oz bottles</QuantityPerUnit>
        <UnitPrice>19</UnitPrice>
    </Products>
    <Products>
        <ProductID>3</ProductID>
        <ProductName>Aniseed Syrup</ProductName>
        <CategoryID>2</CategoryID>
        <QuantityPerUnit>12 - 550 ml bottles</QuantityPerUnit>
        <UnitPrice>10</UnitPrice>
    </Products>         
 </ProductsRoot>

现在我知道如何打印所有unitprice的列表,但是在这里我想打印chang(productID 2)的uniprice,我该怎么做?

$(products).find("Products").each(function() {
                    var unitprice = $(this).find("UnitPrice").text();
                }
            });

2 个答案:

答案 0 :(得分:0)

使用$.filter

var price = $(products)
    .find("Products")
    .filter(function() {
        return $(this).find("ProductName").text() == 'Chang';
    })
    .find("UnitPrice").text();

答案 1 :(得分:0)

或者只是像这样的功能:

findUnitPrice = function(productName){
$(xmlDoc).find('Products').each(function(i,j)
{    
    if($(j).find('ProductName').html() == productName)
    {
        alert($(j).find('UnitPrice').html());
        return false;
    }
});
}
findUnitPrice('Chang');

工作小提琴:https://jsfiddle.net/fn49w7ek/