我想给用户一个选项,这样他就可以编写ID
个将在特定页面上显示的wordpress类别。
wordpress字段将被命名为the_field('categories_id')
,因此如果他输入的ID与逗号分隔的84, 95, 10
。然后显示所有这些。
我只使用了一个id
,例如,如果页面body.term-espectaculos
显示.filter li
data-filter=".filter-84"
。
使用此代码可以正常工作:
if(jQuery('body').hasClass('term-espectaculos')){
if(jQuery('.filters li').attr('data-filter=".filter-84"') !== undefined ){
jQuery(this).fadeIn()
}
}
问题是用户必须能够添加多个ID
,所以它不会像这个例子中那样只是一个。我该怎么办?
谢谢!
答案 0 :(得分:2)
通过data-filter
jQuery('.filters li').data('filter', jsonEncodedArray);
编辑:在php中你可以像这样编码成一个json数组:
$array = array(84,95,10);
echo json_encode($array);
在javascript中:
var array = [84,95,10];
var jsonEncodedArray = JSON.stringify(array);
答案 1 :(得分:1)
如果我理解正确,您只想淡入逗号分隔列表中具有data-filter
属性的列表项:
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); });