所以这是我尝试使用jQuery解析的示例Documentation.XML文件
<DocPortal Version="">
<Folder Name="Sample Drawings" User="*">
<File Type="TILES" Name="Sample1" FileName="Sample1.zip"/>
</Folder>
<Folder Name="Sample Site Information" User="*">
<Folder Name="SampleInnerFolder1" User="*">
<File Type="PDF" Name="Sample1" FileName="Sample1.pdf"/>
<File Type="PDF" Name="Sample2" FileName="Sample2.pdf"/>
</Folder>
<Folder Name="SampleInnerFolder2" User="*">
<File Type="PDF" Name="Sample1" FileName="Sample1.pdf"/>
<File Type="PDF" Name="Sample2" FileName="Sample2.pdf"/>
</Folder>
<File Type="PDF" Name="Sample1" FileName="Sample2.pdf" QR=""/>
<File Type="PDF" Name="Sample2" FileName="Sample2.pdf" QR=""/>
</Folder>
</DocPortal>
当我执行以下代码时,我会得到两个级别中所有文件夹名称的列表
$.get(lDocumentationFilePath , function(data){
$('#content').empty();
$(data).find('Folder').each(function(){
var $Folder = $(this);
console.log($Folder.attr('Name'));
});
});
我想要的只是每个顶级文件夹名称的列表。所以只需“样品图纸”和“样品网站信息”。
有什么想法吗?
答案 0 :(得分:1)
您需要使用children()而不是find()才能获得顶级后代。
$(data).children('Folder').each(function(){
var $Folder = $(this);
console.log($Folder.attr('Name'));
});
给定一个表示一组DOM元素的jQuery对象, .children()方法允许我们搜索这些孩子 DOM树中的元素并从中构造一个新的jQuery对象 匹配元素。 .children()方法与.find()的不同之处在于 .children()只在DOM树中向下移动 .find()可以遍历多个级别以选择后代 元素(孙子等),reference。