使用JQuery& SPServices,我收到类似于以下内容的XML:
<?xml version="1.0"?>
<soap:Envelope xmlns: . . .> <soap:Body>
<GetListItemsResponse xmlns=" ... ">
<GetListItemsResult>
<listitems xmlns:s=" ... >
<rs:data ItemCount="4">
<z:row ows_CtID="5" ows_ID="1" ows_Ct="GR" />
<z:row ows_CtID="9" ows_ID="4" ows_Ct="PC" />
<z:row ows_CtID="2" ows_ID="5" ows_Ct="G" />
<z:row ows_CtID="3" ows_ID="7" ows_Ct="O55" />
</rs:data>
</listitems>
</GetListItemsResult>
</GetListItemsResponse>
</soap:Body></soap:Envelope>
(当然,我得到了更多;为了简化显示概念,我们已经减少了。)
您会注意到排序符合ows_ID
,并且ows_ID
和ows_CtID
的值都有差距。
我想获得最低和最低最大值ows_CtID;
我想要“2
”&amp;换句话说,“9,
”。
使用JavaScript,JQuery(以及可能的SPServices),如何获取XML中特定属性的最小值和最大值(在这种情况下为ows_CtID,
)?
答案 0 :(得分:1)
你需要循环遍历所有z:row并保留min和max的变量,只有在找到更大的值或更小的值时更新它们...例如,将以下内容放在SPServices的completefunc函数中:
var min = null,
max = null;
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var $this = $(this),
val = parseInt( $this.attr("ows_CtID") );
if (min === null) {
min = max = val;
}
if (val < min) {
min = val;
}
if (val > max) {
max = val;
}
});
alert("Min: " + min + " | Max: " + max);
如果你的字段(在这种情况下,ows_CtID)是任何其他整数,那么将上面的内容更改为不使用'parseInt'...如果是带小数的数字,则改为将其改为parseFloat。
保罗。