使用具有多个值的数据属性通过JQuery选择器选择对象

时间:2014-05-22 10:27:09

标签: jquery selector

我需要按数据选择div,具有多个数据值。

<div data-name='["ab","abcd","abcdf"]' />

$("div[data-name*='ab']")  

但是此解决方案会选择包含&#39; ab&#39;的所有div。 我只需要选择仅包含&#39; ab&#39;。

的div

编辑:最佳解决方案:

<div data-name='["ab","abcd","abcdf"]' />

$("div[data-name*='ab\"']")  

2 个答案:

答案 0 :(得分:3)

最好.filter列表:

$('div[data-name]').filter(function() {
   return $.inArray("ab", $(this).data('name')) >= 0
});

即。选择具有div属性的任何data-name,然后明确选择其数组值包含所需元素的那些。

答案 1 :(得分:0)

试试这个:

HTML:

<div data-name='["ab","abcd","abcdf"]' />
<div data-name='["b","abcd","abcdf"]' />
<div data-name='["v","abcd","abcdf"]' />
<div data-name='' />
<div />

Jquery的:

var  divList = [];
divList = $('div').filter(function() {
    if($(this).data('name') != "")
   return $.inArray("ab", $(this).data('name')) >= 0
});
alert(divList.length)

Working Example