Javascript 多属性jquery

Javascript 多属性jquery,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我想给用户一个选项,这样他就可以编写将在特定页面上显示的wordpress类别的IDs wordpress字段将被命名为\u字段('categories\u id'),因此,如果他输入这些id时使用逗号分隔,如84,95,10。然后所有这些都显示出来 我只使用了一个id,例如,如果pagebody.term spectaculos显示a。filter li和数据filter=“.filter-84” 使用以下代码可以正常工作: if(jQuery('body').hasClass('term-e

我想给用户一个选项,这样他就可以编写将在特定页面上显示的wordpress类别的
ID
s

wordpress字段将被命名为\u字段('categories\u id'),因此,如果他输入这些id时使用逗号分隔,如
84,95,10
。然后所有这些都显示出来

我只使用了一个
id
,例如,如果page
body.term spectaculos
显示a
。filter li
数据filter=“.filter-84”

使用以下代码可以正常工作:

if(jQuery('body').hasClass('term-espectaculos')){
    if(jQuery('.filters li').attr('data-filter=".filter-84"') !== undefined ){
        jQuery(this).fadeIn()
    }
}
问题是,用户必须能够添加多个
ID
s,这样它就不会像本例中那样只有一个。我怎么做


谢谢

通过
jQuery('.filters li').data('filter',jsonEncodedArray)向
数据过滤器添加一个json编码的数组

编辑:在php中,您可以对json数组进行如下编码:

$array = array(84,95,10);
echo json_encode($array);
在javascript中:

var array = [84,95,10];
var jsonEncodedArray = JSON.stringify(array);

如果我理解正确,您只希望淡入逗号分隔列表中具有
数据过滤器
属性的列表项:

var values = '84, 95, 10',
    valArr = values.split(', ');
if(jQuery('body').hasClass('term-espectaculos')){
    jQuery('.filters li').filter(function(){
        var thisFilter = ($(this).attr('data-filter') || '').replace('.filter-','');
        return $.inArray(thisFilter, valArr) > -1;
    }).fadeIn();
}

请注意,这要求字符串形式的值精确地由逗号和空格分隔。您可能希望仅使用逗号拆分,然后修剪数组值:

var values = '84, 95, 10',
    valArr = $.map(values.split(','), function(v){ return $.trim(v); });

我从未使用过这个
jsonEncodedArray
。实现它的方法是什么?是的,您理解得很对:)我正在尝试使用您的代码,但我遇到了以下错误:
未捕获的类型错误:无法读取未定义的
@dbada的属性“replace”,这是因为一些
  • 项没有
    数据过滤器
    属性。请看我的更新。