在Jquery中匹配两个类

时间:2013-11-12 09:31:59

标签: jquery

<div>
<ul style="float:left;">
    <li class="font1">sfadsa</li>
    <li class="font2">sfadsa</li>
    <li class="font3">sfadsa</li>
</ul>
</div>

<div>
<ul style="float:right;" >
    <li class="font3">sfadsa</li>
    <li class="font1">sfadsa</li>
    <li class="font2">sfadsa</li>
</ul>
</div>

我已经将jquery scortable选项用于右ul标签。因此,如果类字体1与右侧的类font1匹配,则li标签字体应在右侧li标签中更改为绿色,其他li标签应为红色。如果左侧类与右侧类匹配,则字体应更改绿色。任何人都可以帮我在jquery中这样做吗?

2 个答案:

答案 0 :(得分:0)

这个解决方案怎么样?这假设每个元素只有一个类:

$('ul.left li').each(function(i){
  classMatches = $('ul.right li').eq(i).hasClass($(this).attr('class'));
  if(classMatches){
    $('ul.right li').eq(i).add(this).css({color:"#F00"});
  }
});

我还给了你的<ul>类并应用了外部CSS样式,首先是在jQuery中区分两者,其次是去除你的内联样式。

DEMO

答案 1 :(得分:0)

我不确定这是否是您想要的,但也许您可以使用它:

<强> HTML:

<div id="left">
    <ul style="float:left;">
        <li class="font1">sfadsa</li>
        <li class="font2">sfadsa</li>
        <li class="font3">sfadsa</li>
    </ul>
</div>

<div id="right">
    <ul style="float:right;" >
        <li class="font3">sfadsa</li>
        <li class="font1">sfadsa</li>
        <li class="font2">sfadsa</li>
    </ul>
</div>

<强> jQuery的:

$('#right ul').sortable({
    stop : check
});

function check(){
    $('#right li').each(function(){
        if($(this).attr('class') == $('#left li:eq(' + $(this).index() + ')').attr('class')){
            $(this).css({'background-color':'#0f0'});
        }else{
            $(this).css({'background-color':'#f00'});
        }
    });
}

check();

<强>演示:

http://jsbin.com/icepEMa/1