我正在使用jquery显示来自XML的一些数据,但是我希望它跳过某些元素/节点,并从其他位置而不是起点开始,这是否可能?这是我在下面使用的代码。
var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML( xml ));
var datatext = $xml.find("data");
datatext.each(function(){
$('body').append($(this).find('datatext').text()+'<br>');
});
那会产生
data one
data two
data three
data four
data five
但是我想跳过前3个,所以只会产生
data four
data five
答案 0 :(得分:0)
您可以添加类似datatext = datatext.slice(3);
它将为您提供data four
和data five
演示
var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML(xml));
var datatext = $xml.find("data");
datatext = datatext.slice(3);
datatext.each(function() {
$('body').append($(this).find('datatext').text() + '<br>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
答案 1 :(得分:0)
要跳过前三个data
节点,可以在循环之前在slice()
对象上调用datatext
:
var xml = "<alldata><data><datatext>data one</datatext></data><data><datatext>data two</datatext></data><data><datatext>data three</datatext></data><data><datatext>data four</datatext></data><data><datatext>data five</datatext></data></alldata>";
var $xml = $($.parseXML(xml));
var $datatext = $xml.find("data");
$datatext.slice(3).each(function() {
$('body').append($(this).find('datatext').text() + '<br>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>