查找某个类(a)中也属于其他类(b,c,d)的项目

时间:2013-08-12 00:44:30

标签: javascript jquery

有点难以解释,但就在这里。

我有一个班级.possibleMatch。

我还有一个数组myPicks,其中包含其他类的列表(.silver,.music,.newest)。

有一个无序列表,每个li都被分配了某些类(.possibleMatch,.silver,.music,.gold,.newest,.platinum)

现在我要做的是从ul中找到类.possibleMatch中的每个项目,也就是来自myPicks的类,所以.silver,.music和.newest,以及更新.possibleMatch只包含那些项目。

这是我到目前为止所尝试的内容:

var i;
for(i=0; i<myPicks.length; i++) {

    $('.possibleMatch').has(myPicks[i]);
}

var i;
for(i=0; i<myPicks.length; i++) {
    $('.possibleMatch').hasClass(myPicks[i]);
}

var i;
for(i=0; i<myPicks.length; i++) {

    $('.possibleMatch').filter(myPicks[i]);
}

数组myPicks填充了类的名称,而不是实际的类本身。当我将它与filter,has和hasClass配对时,这是问题吗?

单击按钮时会更新数组,每个按钮都有类名:

var myPicks[];
$('.button').click( function() {
    var hello = " " + $(this).attr('class').split(' ')[0];
    myPicks.push(hello);
}

谢谢,如果难以理解我会道歉!

- 编辑:这是HTML

<ul id="trueMatch">
        <li class="possibleMatch silver music newest" id="uno">VW</li>
        <li class="possibleMatch platinum music" id="dos"> AC </li>
        <li class="possibleMatch gold music newest" id="tres"> ML</li>  
</ul> 

2 个答案:

答案 0 :(得分:3)

您可以尝试的是

如果将possibleMatch类分配给li以及myPicks<li class="possibleMatch silver">ddd</li>,那么

var $lis = $('.possibleMatch').filter(myPicks.join(','));

演示:Fiddle

答案 1 :(得分:-1)

试试这个

$('.possibleMatch').each(function() {
    var elment = $(this);
    for( var i=0; i<myPicks.length; i++){
        if ( elment.hasClass( myPicks[i] ) {

        }
    }
});

假设该数组包含没有点的类名