jQuery属性包含选择器

时间:2011-10-27 02:25:38

标签: jquery

我有一组div,例如:

<div class="wrapper">
 <div class="uct_attr" data-tags="one two three four">stuff</div>
 <div class="uct_attr" data-tags="three four">stuff</div>
 <div class="uct_attr" data-tags="one three five">stuff</div>
 <div class="uct_attr" data-tags="one two six">stuff</div>
 <div class="uct_attr" data-tags="four five six">stuff</div>
</div?

如何对与我的查询匹配的内容执行操作,对另外哪些内容执行操作?请记住,我希望匹配属性data-tags

中的一个单词

例如:

// if match 'one'
$('.wrapper .uct_attr[data-tags="one"]').doMatch();
// the rest that didn't match 'one'
$('.wrapper .uct_attr[data-tags!="one"]').doNotMatch();

问题我认为该属性中有多个标记。

对此的任何帮助都会很棒。

C

3 个答案:

答案 0 :(得分:1)

足够简单:使用member-of-a-whitespace-delimited-list选择器。

var $els = $(".wrapper .uct_attr");
$els.filter("[data-tags~='one']").doMatch();
$els.not("[data-tags~='one']").doNotMatch();

答案 1 :(得分:0)

不是选择器

$('.wrapper').find('div').not('.uct_attr[data-tags="one"]').doNotMatch();

答案 2 :(得分:0)

要匹配属性中的单词,请使用此处定义的〜=运算符:http://api.jquery.com/attribute-contains-word-selector/

// if match 'one'
$('.wrapper .uct_attr[datatags~="one"]').doMatch();
// the rest that didn't match 'one'
$('.wrapper .uct_attr').not('[datatags~="one"]').doNotMatch();