匹配数据属性,隐藏其余部分

时间:2017-08-07 15:33:37

标签: jquery

如果数据属性匹配,我使用以下内容在单击按钮时显示相应的div。如何隐藏所有其他不匹配的?

$('.document-container').click(function() {
    var myEm = $(this).data('language');
    $('.documents[data-document = '+myEm+']').show();  
});

3 个答案:

答案 0 :(得分:1)

您可以在所有元素上调用hide(),然后filter()调用show()的元素。像这样:

$('.document-container').click(function() {
  var myEm = $(this).data('language');
  $('.documents').hide().filter('[data-document="' + myEm + '"]').show();  
});

答案 1 :(得分:0)

试试这个:

$('.document-container').click(function() {
    var myEm = $(this).data('language');
    $(".documents[data-document = '" + myEm + "']").show();  
});

答案 2 :(得分:0)

你可以说“隐藏一切不是我要展示的东西”,就像这样:

$("*:not('#divToShow')").hide();

我让你成为了一个Jsfiddle来尝试它:https://jsfiddle.net/Flyout/5qf2vadx/