我使用复选框隐藏/显示列表中的项目。 每个项目都有一个包含一个或多个关键字的数据标记元素。 实施例
<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元素。我哪里错了?
答案 0 :(得分:0)
试
$('.element').each(function(){
var tags = $(this).data('tag');
if(tags.contains(topic_list))
$(this).fadeIn('slow');
else
$(this).hide();
});
答案 1 :(得分:0)
如果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');
}