Jquery 查找具有匹配属性的元素
我有一些xml:Jquery 查找具有匹配属性的元素,jquery,xml,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 tit
<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>
然而,股票价格总是以空字符串的形式返回
如果我检查:
$(this).find("price[title!='stock']")
它的长度为2,而不是1,并且
$(this).find("price[title='stock']")
长度为0
我做错了什么
更新
我已经给出了包含名称空间信息的完整xml,为了让示例更清晰,我本来省略了它,但这可能是问题的原因,所以现在就给出完整的xml。好的,我设法使用@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);
});
var-xml='1〕\
\
0.61\
12.5\
\
很明显,您的选择器在使用命名空间时不正确:
我假设$(this).find(“price[title='stock'])
长度为零?有效:。@pimvdb:我运行它时没有收到警报,但也没有js错误。贾斯汀·萨蒂尔:你是对的,我正在检查它,它似乎在IE9上有效,但在IE8上无效。不确定这背后的原因是什么。@pimvb:我已经更新,在上面和下面给出了完整的xml
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);
});