0

非常によく似た解決策があるにもかかわらず、私は最後の日を Stack の精査に費やしましたが、この問題に対する答えは見つかりませんでした。これは、私が使用している HTML のコードです。

<div class="titles">
    <div class="filename" id="sfilename"><strong>Name</strong></div>
    <div class="filesize" id="sfilesize"><strong>Size</strong></div>
    <div class="filetype" id="sfiletype"><strong>Type</strong></div>
    <div class="filedate" id="sfiledate"><strong>Last Modified</strong></div>
</div>

<div id="sort">
    <div class="folder">
        <div class="filename">Folder 1</div>
    <div class="filesize">&nbsp;</div>
        <div class="filetype">&nbsp;</div>
        <div class="filedate">May 12 2012 11:24:44 AM</div>
    </div>
    <div class="folder">
        <div class="filename">Folder 2</div>
    <div class="filesize">&nbsp;</div>
        <div class="filetype">&nbsp;</div>
        <div class="filedate">May 15 2012 09:24:44 AM</div>
    </div>
    <div class="folder">
        <div class="filename">Folder 3</div>
    <div class="filesize">&nbsp;</div>
        <div class="filetype">&nbsp;</div>
        <div class="filedate">May 18 2012 12:24:44 AM</div>
    </div>

    <div class="file">
        <div class="filename">File 1</div>
    <div class="filesize">7.38 Kb</div>
        <div class="filetype">png</div>
        <div class="filedate">May 18 2012 08:24:44 AM</div>
    </div>
    <div class="file">
        <div class="filename">File 2</div>
    <div class="filesize">58.2 Kb</div>
        <div class="filetype">jpg</div>
        <div class="filedate">May 16 2012 07:24:44 AM</div>
    </div>
    <div class="file">
        <div class="filename">File 3</div>
    <div class="filesize">135.87 Kb</div>
        <div class="filetype">mov</div>
        <div class="filedate">May 10 2012 05:24:44 AM</div>
    </div>

</div>

#filename、#filesize、#filetype、または #filedate div の内容に基づいて、#sort div 内でソートできるようにしたいと考えています。

私はすでにJavascriptでこれを試しましたが、うまくいきませんでした:

<script type="text/javascript">
function sortUsingNestedText(parent, childSelector, keySelector) {
    var items = parent.children(childSelector).sort(function(a, b) {
        var vA = $(keySelector, a).text();
        var vB = $(keySelector, b).text();
        return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
    });
    parent.append(items);
}

$('#sfilename').data("sortKey", "#filename");
$('#sfilesize').data("sortKey", "#filesize");
$('#sfiletype').data("sortKey", "#filetype");
$('#sfiledate').data("sortKey", "#filedate");

$("#sfilename").click(function() {
   sortUsingNestedText($('#sort'), "div", $("#sfilename").data("sortKey"));
});

$("#sfilesize").click(function() {
   sortUsingNestedText($('#sort'), "div", $("#sfilesize").data("sortKey"));
});

$("#sfiletype").click(function() {
   sortUsingNestedText($('#sort'), "div", $("#sfiletype").data("sortKey"));
});

$("#sfiledate").click(function() {
   sortUsingNestedText($('#sort'), "div", $("#sfiledate").data("sortKey"));
});

</script>
4

1 に答える 1

0

.data()呼び出し元の にスイッチを格納するために使用し、 / jQuery オブジェクトをdata分割して、必要な方法で整理します。folderfile

Fiddle - data プロパティを使用してorder_by、クリックしたときに並べ替えに適用される次の順序として保存しています。前回のコメントよりも少しフィドルを単純化しました。=]

于 2012-06-06T22:28:49.063 に答える