如何更改此功能以使用jQuery.contains()
方法而不是find()
?
我正在使用该功能按各种属性(即颜色,产品类别,场合等)过滤服装,而且该功能目前仅返回完全匹配。由于项目通常具有多个属性值(即多于一种颜色),我想使用contains()
代替find()
,但我无法弄清楚将contains()
与数据属性
我在这里发布了一个简单的函数示例:http://jsfiddle.net/chayacooper/WZpMh/5/
$('#filterStyleOptions li a').click(function () {
var attrStyle = $(this).data('style');
$('#filterStyleOptions li').removeClass('active');
$(this).parent().addClass('active');
if (attrStyle == 'All') {
$('#content').find('li').show();
} else {
// $('#content').find('li').hide();
$('#content').find('li:not([data-style="' + attrStyle + '"])').hide();
$('#content').find('li[data-style="' + attrStyle + '"]').show();
}
return false;
});
答案 0 :(得分:10)
您对contains 选择器语法:
感到困惑jQuery.contains
$('#content').find('li[data-style*="' + attrStyle + '"]').show();
*=
代替=
表示包含。您也可以使用~=
来查找整个单词,这更有可能是您想要的。所有这些的文档都在这里:http://api.jquery.com/category/selectors/