$(xmlObject).find(str.xmlroot).each(function() {.......得到想要的数据....
});//但这个只能得正序数据,得不到倒序.
//我想得到id>1 的数据不知如何得到我的想法但不对
$(xmlObject).find(str.xmlroot).not(..这里不知如何写..).each(function() {.......得到想要的数据....
});//
});//但这个只能得正序数据,得不到倒序.
//我想得到id>1 的数据不知如何得到我的想法但不对
$(xmlObject).find(str.xmlroot).not(..这里不知如何写..).each(function() {.......得到想要的数据....
});//
不用jq的代码如下,先提取数据进入数组,然后再排序<script type="text/javascript">
//==========================排序函数
function asc(a,b){//升序排序的函数
return a.id-b.id;
}
function desc(a,b){//降序排序的寒素
return b.id-a.id;
}
//==========================排序函数结束
//loadxml时需要完整的xml字符,根要加上,要不加载不了
var xml="<root><item><id>0</id><title>fgsdf</title><text>sdfgsdf</text></item>"
+"<item><id>1</id><title>fgsdf</title><text>sdfgsdf</text></item>"
+"<item><id>2</id><title>fgsdf</title><text>sdfgsdf</text></item></root>"; var dom,data=new Array();
if(window.ActiveXObject){//ie
dom=new ActiveXObject("microsoft.xmldom");
dom.loadXML(xml);
}
else if(document.implementation&&document.implementation.createDocument){//firefox
dom=new DOMParser().parseFromString(xml,"text/xml")
}
if(dom){
var items=dom.getElementsByTagName("item"),id,title,txt;
for(var i=0;i<items.length;i++){
id=parseInt(items[i].getElementsByTagName("id")[0].firstChild.nodeValue);
title=items[i].getElementsByTagName("id")[0].firstChild.nodeValue;
txt=items[i].getElementsByTagName("id")[0].firstChild.nodeValue;
data.push({id:id,title:title,text:txt});
}
//根据需要你的需要选择asc或者desc排序
data.sort(asc);//选择升序
var needData;//需要的数组,就是>1的数据
for(var i=0;i<data.length;i++){//遍历数组找出>1的位置,如果你的id是连续并且从0开始则可以直接needData=data.slice(2,data.length);
if(data[i].id>1){
needData=data.slice(i,data.length);
break;
}
}
alert(needData.length)//这个就是你需要的数组了,里面数据格式是json的
}else alert("创建dom对象失败!");
</script>
要是xml文件下有很多数据,这样提取会影响速度吗?(每次我只提10条出来,按照这样写法,那10条以外的数据也要提过来,只是不写入数组,有没有更好的方法啊,