jquery - 修改此函数以按数据属性而不是按类显示/隐藏

标签 jquery show-hide custom-data-attribute

我想通过数据属性而不是类来使用这个显示/隐藏函数,但是我很难正确地使用语法。

我知道它是这样的 $("li[data-color="+ this.value + "]").show(); 但我无法得到它可以工作和/或修改功能以使其工作。

我正在使用该功能按各种属性(即颜色、产品类别、场合等)过滤服装,并且我在这里发布了一个简单示例的 fiddle :http://jsfiddle.net/chayacooper/WZpMh/4/

$('#filterOptions li a').click(function () {
    var ourClass = $(this).attr('class');
    $('#filterOptions li').removeClass('active');
    $(this).parent().addClass('active');
    if (ourClass == 'all') {
        $('#content').find('.item').show();
    } else {
        $('#content').find('.item:not(.' + ourClass + ')').hide();
        $('#content').find('.item.' + ourClass).show();
    }
    return false;
});

最佳答案

请参阅此 fiddle 的工作示例:http://jsfiddle.net/Cr2cY/

$(document).ready(function () {
    $('#filterOptions li a').click(function () {
        // fetch the class of the clicked item
        var ourDataAttr = $(this).data('color');
        // reset the active class on all the buttons
        $('#filterOptions li').removeClass('active');
        // update the active state on our clicked button
        $(this).parent().addClass('active');
        if (ourDataAttr == 'All') {
            // show all our items
            $('#content').find('.item').show();
        } else {
            // hide all elements that don't share ourClass
            $('#content').find('.item:not([data-color="' + ourDataAttr + '"])').hide();
            // show all elements that do share ourClass
            $('#content').find('.item[data-color="' + ourDataAttr + '"]').show();
        }
        return false;
    });
});

请注意,您在 fiddle 中将“all”与“All”进行比较,这将不匹配。

关于jquery - 修改此函数以按数据属性而不是按类显示/隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582349/

相关文章:

javascript - 如何创建隐藏和显示常见问题解答?

javascript - jQuery - getJSON 数据到数组

html - 显示和隐藏电子邮件正文中的内容 (Outlook 2010)

javascript - css @media query + 当屏幕小于特定宽度时显示/隐藏 div 的 jQuery 按钮 + 当屏幕变大时自动恢复它

jQuery 验证将类添加到错误元素?

jquery - 读取每个div内元素的值

javascript - 选择数据属性等于任意值的元素

javascript - Vanilla Javascript : Find a data attribute of the same name as an element given its id

调用 invalidateOptionsMenu() 时 Android SearchView 不工作

jquery - jQuery UI 日期选择器的属性选项