3

jQuery.contains()の代わりにメソッドを使用するようにこの関数を変更するにはどうすればよいfind()ですか?

さまざまな属性 (つまり、色、製品カテゴリ、機会など) で衣類をフィルター処理する関数を使用していますが、関数は現在完全一致のみを返します。項目には属性に対して複数の値 (つまり、複数の色) があることが多いため、contains()代わりにを使用したいのですが、データ属性でfind()使用する適切な構文を理解できませんでした。contains()

関数の簡単な例をフィドルに投稿しました: http://jsfiddle.net/chayacooper/WZpMh/5/

    $('#filterStyleOptions li a').click(function () {
        var attrStyle = $(this).data('style');
        $('#filterStyleOptions li').removeClass('active');
        $(this).parent().addClass('active');
        if (attrStyle == 'All') {
            $('#content').find('li').show();
        } else {
            // $('#content').find('li').hide();
            $('#content').find('li:not([data-style="' + attrStyle + '"])').hide();
            $('#content').find('li[data-style="' + attrStyle + '"]').show();
        }
        return false;
    });
4

1 に答える 1

12

jQuery.containscontainsセレクターの構文を混同しています:

$('#content').find('li[data-style*="' + attrStyle + '"]').show();

手段の*=代わりに=含む。を使用して、単語全体のみを検索することもでき~=ます。これは、必要なものである可能性が高くなります。これらすべてのドキュメントはこちら: http://api.jquery.com/category/selectors/

于 2013-03-23T04:14:12.600 に答える