0

所以这是我尝试使用 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'));
    });
});

我想要的只是每个顶级文件夹名称的列表。所以只是“示例图纸”和“示例站点信息”。

有任何想法吗?

4

1 回答 1

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() 也可以向下遍历多个级别以选择后代元素(孙子等),参考

于 2013-09-18T16:59:52.407 回答