1

このコードを使用して data() を収集しますが、逆の順序で来るため、クロムでは機能しません。結果を一致させるにはどうすればよいですか。

これは同じコードです。クロム/ファイアフォックス全体で異なる結果が得られるため、クロムで機能しません。

/* get checked filters */
strJson = '{';
jQuery('.uag-filter-option').each( function() {
    if (jQuery(this).hasClass('checked')) {
        jQuery.each(jQuery(this).data(), function(i, v) {
            strJson += i + ":'" + v + "',";
        });
    }
});
strJson = strJson.slice(0, -1);
strJson += '}';

alert(strJson);

FireFox では次のようになります。

{sort:\'sortbydate\',method:\'sortby\'}

Chrome では次のようになります。

{method:\'sortby\',sort:\'sortbydate\'}

Chrome で Firefox と同じ結果を得るにはどうすればよいですか? data() がさまざまなブラウザーでどのように処理されたかだと思いますか?

データを含むアンカーは次のとおりです。

<a href="#" class="uag-filter-option" data-method="sortby" data-sort="sortbydate">date</a>

何か考えはありますか?

のようだ:

jQuery.data() を使用してデータ属性にアクセスすると、それらの順序が Firefox と IE で逆になります。それを回避してすべてのブラウザで一致させるにはどうすればよいですか?

4

2 に答える 2

2

プロパティの順序は気にする必要はありません。またJSON.stringify()、結果を手動でシリアル化する代わりに、次を使用する必要があります。

strJson = JSON.stringify(jQuery('.uag-filter-option.checked').data());
于 2013-05-16T15:52:44.657 に答える
0

取得したデータを文字列の代わりに配列に入れて、たとえばアルファベット順に並べ替えるのはどうですか? 次に、配列から文字列を作成しますよね?

于 2013-05-16T15:52:48.607 に答える