3

ここには、Web サイト用に作成した JavaScript プラグインがあり、プラグインを変更していくつかの追加機能を追加する作業を行っています。

プラグインは以前、次のように項目の配列を入力として受け入れました (最終的に小さな視覚化を作成するため)。

Tom Hank
Will Smith
Chirstopher Nolan
Keanu Reeves

内部的に、プラグインは並べ替え関数を使用して、次のように名前を並べ替えました。

groups = groups.sort(function (a, b) {
            if (a.content > b.content) {
                return 1;
            }
            if (a.content < b.content) {
                return -1;
            }
            return 0;
        });

とはすべてetc などa.contentの文字列です。b.content"Keanu Reaves"

ただし、プラグインに送信される入力を変更し、 input を送信する代わりに、stringshtml を入力として送信するようになりました。例:

<div class="sampleDiv"><span class="">Keanu Reaves</span></div>
<div class="sampleDiv"><span class="">Christopher</span></div> etc.

各アイテムが形成される場所

var itemSrc= '<div class="sampleDiv"><span class="">' +
              'Keanu Reaves' + 
             '</span></div>';

プラグイン内のアイテムを同様に (そのソート関数で) ソートする必要がありますが、html を送信するようになったので (a.content には上記の html が含まれるようになりました)、SO から、上記の関数 (後で入力を変更して文字列のみを送信する場合に備えて、以前の並べ替えも保持する必要があります)。助言がありますか?

4

1 に答える 1

1

並べ替え関数では、最初に html タグを取り除きます。結果の文字列を使用して、並べ替えを実行します。

    groups = groups.sort(function (a, b) {
        var x = a.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,''), y = b.toLowerCase().replace(/<[a-zA-Z\/][^>]*>/g,'');
        return x < y ? -1 : x > y ? 1 : 0;
    });

これが役立つことを願っています。

于 2013-03-18T15:35:06.043 に答える