jQuery:テキスト値に基づいて<a>リンクをグループ化する

ロビンジョンソン

jQuery noobhere-助けが必要です。

基本的に、Goのhtml / templateの出力はひどいので、私はもっと多くのJSを使わざるを得ません(私はひどいです!)

テキスト値で「親フォルダ」リンクにグループ化する必要がある、順序付けられているがグループ化されていないリンクのリストがあります。ファイル/フォルダツリーのように。

リストは動的ですが、次のように基づいています。

<div id="Files">
<a>file.rb</a>
<a>Somefile.rb</a>
<a>folder</a>
<a>folder/level2</a>
<a>folder/level2/file.js</a>
<a>folder/level2/level3/anotherfile.js</a>
</div>

したがって、ファイルは親フォルダーにグループ化する必要があり、フォルダーは「a」要素のテキストによって再帰的にグループ化されます。親の「a」は「フォルダ」であり、子の「ファイル」はそのフォルダ内にあります。

残念ながら、基になるGoスクリプトが原因で、フォルダとファイルの「a」を生成時に別々のクラスに指定することはできません。出力は、順序付けられたフォルダ/ファイルの完全に拡張されたディレクトリですが、グループ化されたリンクではありません。

RE:以下のコメント:必要な出力の例は次のようなものです。

http://labs.abeautifulsite.net/archived/jquery-fileTree/demo/

これは、ファイル/フォルダーをul / liリストに分割することを意味する可能性があることを理解していますが、それで問題ありません。それは私が苦労しているリンクテキストからのファイル対フォルダ&フォルダレベルの検出です。

どんな助けでも大歓迎です!ありがとう!:)

Wezelkrozum

これはあなたが探しているものですか?

http://jsfiddle.net/6hWsK/

$(document).ready(function(){
    var aList = $('#Files > a');
    var fileList = [];
    $.each($('#Files > a'), function(i, obj){
        fileList.push($(obj).html());
    });

    var tree = GetNodeTree(fileList);
    console.log(tree);
    var html = DrawMenu(tree, "http://www.google.nl");
    console.log(html);
    $('#Files').html(html);
});

function GetNodeTree(fileList){
    if(fileList.length === 0){
        return [];
    }
    var childTree = [];
    $.each(fileList, function(i, path){
        var nodeNames = path.split("/");
        if(childTree[nodeNames[0]]===undefined){
            childTree[nodeNames[0]] = [];
            childTree[nodeNames[0]]['files'] = [];
        }
        if(nodeNames.length>1){
            var childPath = nodeNames.slice(1).join("/");
            childTree[nodeNames[0]]['files'].push(childPath);
        }
    });
    for(var key in childTree) {
        childTree[key]['name'] = key;
        childTree[key]['files'] = GetNodeTree(childTree[key]['files']);
    }
    return childTree;
}

function DrawMenu(tree, basepath){
    var elements = "";
    for(var key in tree) {
        var node = tree[key];
        var path = basepath + "/" + node['name'];
        var childMenu = DrawMenu(node['files'], path);
        elements += $('<div><li><a href="'+ path + '">' + node['name'] + childMenu + '</a></li></div>').html();
    }
    if(elements.length>0){
        elements = '<ul>'+elements+'</ul>';
    }
    return $('<div>'+elements+'</div>').html();
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

指定された類似性のパーセンテージに基づいて、バルクテキストをグループにグループ化する

分類Dev

ルールに基づいてテキスト値を取得する

分類Dev

値に基づいてテキストボックスを非表示にする

分類Dev

jQuery-値ではなくテキストに基づいて選択オプションを削除します

分類Dev

テキストボックスの値に基づいてリストボックスの値をフィルタリングする方法

分類Dev

RactiveJS:テキスト入力値に基づいてDIV要素をフィルタリングする

分類Dev

テキストブロック内の単一の値に基づいてテキストブロックをフィルタリングする

分類Dev

リストのセクションを値に基づいて複数のリストにグループ化するPythonicの方法

分類Dev

セルの数値に基づいてテキストステートメントを作成する

分類Dev

リストに存在するキー値に基づいて辞書をフィルタリングする

分類Dev

Rails 4:RailsでJQueryを使用してチェックボックス値に基づいてテキストフィールドを無効にする方法

分類Dev

条件に一致するリスト値に基づいて辞書キーをグループ化するにはどうすればよいですか?

分類Dev

jquery 値の長さに基づいて入力マスク テンプレートを変更する

分類Dev

名前に基づいてLinuxでテキストファイルをグループ化する

分類Dev

値に基づいてオブジェクトをグループ化する

分類Dev

辞書キーに基づいてリスト値を持つデータをグループ化するにはどうすればよいですか?

分類Dev

ドロップダウン値に基づいてテキストボックスを有効にする

分類Dev

行のテキストに基づいてテーブル内のリンクをクリックする方法

分類Dev

テキストエリアの値に基づいてjqueryのチェックボックスをオンまたはオフにする方法

分類Dev

Pythonの別のリストの最大値に基づいて配列の列インデックスをグループ化する

分類Dev

Googleスプレッドシートクエリ>文字列内のテキストに基づいて行をフィルタリングする

分類Dev

WooCommerceの属性値に基づいて異なるテキストを表示する

分類Dev

ラベルのテキスト/値に基づいてUILocalNotificationを呼び出す

分類Dev

URLに基づいて動的にリクエストをルーティングするプロキシウェブサーバーはありますか?

分類Dev

JsonArrayのキーの値に基づいてリストをフィルタリングする方法

分類Dev

RethinkDBのリスト値の外部キーに基づいて結合をフィルタリングする

分類Dev

ng-repeat:オブジェクトのグループ化された値に基づいてテーブルをレンダリングします

分類Dev

変数の値に基づいてprintf()のテキストを変更する

分類Dev

テキストに基づいて最高値を決定するExcelのvba式

Related 関連記事

  1. 1

    指定された類似性のパーセンテージに基づいて、バルクテキストをグループにグループ化する

  2. 2

    ルールに基づいてテキスト値を取得する

  3. 3

    値に基づいてテキストボックスを非表示にする

  4. 4

    jQuery-値ではなくテキストに基づいて選択オプションを削除します

  5. 5

    テキストボックスの値に基づいてリストボックスの値をフィルタリングする方法

  6. 6

    RactiveJS:テキスト入力値に基づいてDIV要素をフィルタリングする

  7. 7

    テキストブロック内の単一の値に基づいてテキストブロックをフィルタリングする

  8. 8

    リストのセクションを値に基づいて複数のリストにグループ化するPythonicの方法

  9. 9

    セルの数値に基づいてテキストステートメントを作成する

  10. 10

    リストに存在するキー値に基づいて辞書をフィルタリングする

  11. 11

    Rails 4:RailsでJQueryを使用してチェックボックス値に基づいてテキストフィールドを無効にする方法

  12. 12

    条件に一致するリスト値に基づいて辞書キーをグループ化するにはどうすればよいですか?

  13. 13

    jquery 値の長さに基づいて入力マスク テンプレートを変更する

  14. 14

    名前に基づいてLinuxでテキストファイルをグループ化する

  15. 15

    値に基づいてオブジェクトをグループ化する

  16. 16

    辞書キーに基づいてリスト値を持つデータをグループ化するにはどうすればよいですか?

  17. 17

    ドロップダウン値に基づいてテキストボックスを有効にする

  18. 18

    行のテキストに基づいてテーブル内のリンクをクリックする方法

  19. 19

    テキストエリアの値に基づいてjqueryのチェックボックスをオンまたはオフにする方法

  20. 20

    Pythonの別のリストの最大値に基づいて配列の列インデックスをグループ化する

  21. 21

    Googleスプレッドシートクエリ>文字列内のテキストに基づいて行をフィルタリングする

  22. 22

    WooCommerceの属性値に基づいて異なるテキストを表示する

  23. 23

    ラベルのテキスト/値に基づいてUILocalNotificationを呼び出す

  24. 24

    URLに基づいて動的にリクエストをルーティングするプロキシウェブサーバーはありますか?

  25. 25

    JsonArrayのキーの値に基づいてリストをフィルタリングする方法

  26. 26

    RethinkDBのリスト値の外部キーに基づいて結合をフィルタリングする

  27. 27

    ng-repeat:オブジェクトのグループ化された値に基づいてテーブルをレンダリングします

  28. 28

    変数の値に基づいてprintf()のテキストを変更する

  29. 29

    テキストに基づいて最高値を決定するExcelのvba式

ホットタグ

アーカイブ