条件匹配时使用Jquery定位多个元素

时间:2017-04-13 16:50:42

标签: javascript jquery

我有这个HTML,其中“5”重复两次。

<ul>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>5</li>
</ul>

所以,我在“LI”元素上使用click()。

    var guess1 = "";
    var guess2 = "";
    var count = 0;

    $("li").click(function(){
        if ( count < 2 ){
             count++;
            if (count === 1 ) { 
                guess1 = $(this).text(); 
            } else{
                guess2 = $(this).text();
                    if (guess1 === guess2) {
                    $(this).css("background", "red"); // Here both matching "LI" should affect. Not only one "LI"
                }
            }      
        }
    });

问题:我想要的是,当“guess1”===“guess2”时,那么匹配“LI”(在这种情况下LI包含值“5”)应该采用bg颜色。

请提出任何建议。谢谢:))

2 个答案:

答案 0 :(得分:2)

将第一个元素保存在变量中。

&#13;
&#13;
var guess1 = "";
var guess2 = "";
var count = 0;
var li1 = null;

$("li").click(function() {
  if (count < 2) {
    count++;
    if (count === 1) {
      guess1 = $(this).text();
      li1 = $(this);
    } else {
      guess2 = $(this).text();
      if (guess1 === guess2) {
        li1.css("background", "red");
        $(this).css("background", "red");
      }
    }
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li>5</li>
  <li>6</li>
  <li>7</li>
  <li>5</li>
</ul>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

尝试使用每个功能:

 var guess1 = "";
    var guess2 = "";
    var count = 0;

    $("li").click(function(){
        if ( count < 2 ){
             count++;
            if (count === 1 ) { 
                guess1 = $(this).text(); 
            } else{
           $('ul li').each(function(i)
                          {    
                          guess2 = $(this).text();
                          if (guess1 === guess2) {
                              $(this).css("background", "red");
                          }
                         });

            }      
        }
    });

这是一个小提琴:

https://jsfiddle.net/nannizeta/mvw8zzcf/4/