<Item id="419" rank="0.0000" date_added="2012-09-24T19:43:14" date_end="2012-10-15T19:43:14" uid="134333" price=" ,-" district="-1" district_text="Friend" cid="9" cid_text="Underholdning" img_height_thumb="433" />
<Item id="418" rank="0.0000" date_added="2012-09-24T19:17:42" date_end="2012-10-15T19:17:42" uid="134332" price=" ,-" district="-1" district_text="Friend" cid="9" cid_text="Underholdning" img_height_thumb="254" />
<Item id="405" rank="102.0000" date_added="2012-09-23T18:55:20" date_end="2012-10-14T18:55:20" uid="134331" price=" 102,-" district="-1" district_text="Friend" cid="761" cid_text="Mote" img_height_thumb="280" />
这是示例 xml 数据。我正在使用这段代码来获取 xml。
xmlDoc = xmlhttp.responseXML;
var items = xmlDoc.getElementsByTagName("Item");
//要添加代码
for (i = 0; i < items.length && i < 40; i++) {
var bRank = items[i].getAttribute("rank");
}
//想添加代码
我想过滤所有大于 0 的数据等级。我只想在这个地方添加过滤器,这样我的其余代码就不会改变。那么我如何过滤项目变量并在其他变量中获取过滤器值。所以循环不会生效。我可以在 for 循环中更改变量的名称。
请为此建议我任何想法。
第一次编辑
xmlDoc = xmlhttp.responseXML;
var items1 = xmlDoc.getElementsByTagName("Item");
var items = $(items1).filter('Item').each(function () {
var bRank = $(this).attr('rank');
var tempRank = bRank.replace("0000", "").replace(".", "");
if (tempRank > 0)
return this;
});
alert(items.length);
alert(items1.length);
两个警报的答案都是 3。
但是对于第一个警报 1 和第二个警报 3,答案应该是这样的。
但我得到相同的响应每个警报。请检查并告诉我您的建议。谢谢