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

最上位の子孫のみを取得するには、find() の代わりにchildren()を使用する必要があります。

$(data).children('Folder').each(function(){
    var $Folder = $(this);
    console.log($Folder.attr('Name'));
});

DOM 要素のセットを表す jQuery オブジェクトを指定すると、.children() メソッドを使用して、DOM ツリー内のこれらの要素の子を検索し、一致する要素から新しい jQuery オブジェクトを構築できます。.children() メソッドは .find() とは異なり、.children() は DOM ツリーを 1 レベル下に移動するだけですが、 .find() は複数のレベルを下に移動して子孫要素 (孫など) を選択することもできます。参照してください

于 2013-09-18T16:59:52.407 に答える