AND条件中的多个属性值的选择器

时间:2014-02-04 16:40:08

标签: jquery

我有以下html:

<div id="wrapper">
    <div>a</div>
    <div tag="one, two, three">b</div>
    <div tag="three">c</div>
    <div tag="four, one">d</div>
    <p>e</p>
</div>

JQuery我需要.hide所有#wrapper个孩子在AND条件中不包含众所周知的标记数组。

示例:

对于one, three我有:

<div id="wrapper">
    <div tag="one, two, three">b</div>
</div>

对于单个标签,我设法以这种方式工作:

var tag= tagArray[0];

$("#wrapper> *:not([tag='" + tag + "'])").each(function (index, value) {
      $(value).hide();
}); 

但如何使用完整阵列?这是实现这个目标的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用此代码:

var tagArray = ['three', 'two']


$.each(tagArray, function(){
    var tag = this;
    $("#wrapper> *").filter(function(){
        var regexp = new RegExp('\\b'+tag+'\\b');
        return !($(this).attr('tag') && $(this).attr('tag').match(regexp));
    }).hide()
})

循环遍历标记数组,然后将它们与正则表达式进行比较。

此外,最好使用HTML5 data- *属性而不是海关属性。

<强> Fiddle