查找具有匹配属性的元素

时间:2011-08-18 16:31:24

标签: jquery xml

我有一些xml:

<myco:results xmlns:myco="http://myco.mycollp.com" resultsTypeID="StockChart">
    <myco:row xmlns:myco="http://myco.mycollp.com">
        <myco:price title="stock">0.6107013847</myco:price>
        <myco:price title="index">0.61965464</myco:price>
    </myco:row>
</myco:results>

我使用以下jQuery循环它:

$(xml).find("row").each(function () {

    var stockPrice = $(this).find("price[title='stock']").text();
}

但是,stockPrice总是以空字符串形式返回。

如果我检查:

$(this).find("price[title!='stock']")

长度为2,而不是1,

$(this).find("price[title='stock']")

的长度为0.

我做错了什么?

更新

给出了带有命名空间信息的完整xml,我最初省略了这个以使示例更清楚,但这可能是问题的原因所以现在给出了完整的XML。

2 个答案:

答案 0 :(得分:1)

这里使用命名空间时你的选择器是不正确的: http://jsfiddle.net/PvakT/3/

答案 1 :(得分:0)

好的,我设法使用@pimvdb建议的jsfiddle.net网站进行工作。

var xml = '<myco:results xmlns:myco="http://myco.mycollp.com">\
    <myco:row xmlns:myco="http://myco.mycollp.com">\
        <myco:price title="stock">0.61</myco:price>\
        <myco:price title="index">12.5</myco:price>\
            </myco:row>\
</<myco:results>';

$(xml).find("myco\\:row").each(function () {
    var stockPrice = $(this).find("myco\\:price[title='stock']").text();
    alert(stockPrice);
});

由于