在此函数中使用带有数据属性的jQuery.contains()方法而不是find()

时间:2013-03-23 04:11:00

标签: jquery contains custom-data-attribute

如何更改此功能以使用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;
    });

1 个答案:

答案 0 :(得分:10)

您对contains 选择器语法

感到困惑jQuery.contains
$('#content').find('li[data-style*="' + attrStyle + '"]').show();

*=代替=表示包含。您也可以使用~=来查找整个单词,这更有可能是您想要的。所有这些的文档都在这里:http://api.jquery.com/category/selectors/