<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と2番目のアラート3の場合、回答は次のようになります。
しかし、アラートごとに同じ応答が返されます。確認して、提案を教えてください。ありがとう