Jquery attr() 多个值

Jquery attr() multiple values

我正在对列表中的 Hide/Show 项使用复选框。 每个项目都有一个包含一个或多个关键字的数据标签元素。 例子

<li class="element" data-tag="business economic">

我的 JQuery 目前是这样的

$('.element').each(function(){
      var item = $(this).attr('data-tag');
      if(jQuery.inArray(itemarray,topic_list) > -1) 
        $(this).fadeIn('slow');
      else
        $(this).hide();

    });

如果 data-tag 中只有一个元素,则此方法有效,但如果有多个元素,则不会显示 LI 元素。我哪里错了?

尝试

$('.element').each(function(){
  var tags = $(this).data('tag');
  if(tags.contains(topic_list)) 
    $(this).fadeIn('slow');
  else
    $(this).hide();

});

如果 topic_list 是您在 data-tag 属性中搜索的字符串:

jQuery('li[data-tag]').hide();  
jQuery('li[data-tag~="' + topic_list + '"]').fadeIn('slow');

编辑

如果 topic_list 是一个标签数组:

jQuery('li[data-tag]').hide();
for(var i = 0, l = topic_list.length; i < l; i++) {
  var tag = topic_list[i];
  jQuery('li[data-tag~="' + tag + '"]').fadeIn('slow');
}