.data() キー/値に基づいて要素をフィルタリングする 質問する

.data() キー/値に基づいて要素をフィルタリングする 質問する

たとえば、クラス の div 要素が 4 つあり.navlink、クリックすると を使用して.data()というキーが'selected'の値に設定されるものとしますtrue

$('.navlink')click(function() { $(this).data('selected', true); })

新しいものがクリックされるたびに.navlink、後で操作できるように以前に選択したものを保存したいと思いますnavlink。 を使用して保存されたものに基づいて要素を選択する、すばやく簡単な方法はありますか.data()?

jQueryはないようです:フィルター要件を満たしており、次の操作 (同じクリック イベント内) を試しましたが、何らかの理由で機能しません。

var $previous = $('.navlink').filter( 
    function() { $(this).data("selected") == true }
);

これを実現する方法は他にもあることは知っていますが、今のところは、 経由で実行できるかどうかが主な関心事です.data()

ベストアンサー1

フィルターは機能しますが、フィルターに渡される関数内で一致するオブジェクトを取得するには、そのオブジェクトに対して true を返す必要があります。

var $previous = $('.navlink').filter(function() { 
  return $(this).data("selected") == true 
});

おすすめ記事