Javascript 多属性jquery
我想给用户一个选项,这样他就可以编写将在特定页面上显示的wordpress类别的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
ID
s
wordpress字段将被命名为\u字段('categories\u id'),因此,如果他输入这些id时使用逗号分隔,如84,95,10
。然后所有这些都显示出来
我只使用了一个id
,例如,如果pagebody.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”,这是因为一些
项没有数据过滤器
属性。请看我的更新。