我具有与一个或多个属性值匹配的选择器:
var item = $(this).closest('.foo[data-category*="'+category+'"]')
这很好。 (类别是一个或多个逗号分隔的单词)
现在我正在尝试像这样使用它:
if(item.attr('data-category*="'+category+'"')){ }
但不起作用。
我虽然可以尝试:
if(item.attr('data-category').split(',').indexOf(category) > -1){ }
但是如果我的某些商品没有data-category属性,这将引发错误。
jquery.attr
是不是选择器匹配器,但仅返回具有该名称的项目属性。这就是问题。要检查项目的属性是否与逗号分隔的值列表之一匹配,请执行以下操作(假设项目首先具有属性data-category
):
if ( -1 !==(','+item.attr('data-category')+',').indexOf(','+category+',') ) {
// matches
}