2017-04-13 116 views
0

我有這個html,其中「5」重複兩次。當條件匹配時使用jquery匹配多個元素

<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」)應該採取背景顏色。

請給出任何建議。謝謝:)

+0

哇!真棒..它工作正常。 :) 謝啦 ! – Sahil

回答

2

將第一個元素保存在變量中。

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"); 
 
     } 
 
    } 
 
    } 
 
});
<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>

+0

@Barmer $(「li:contains(」+ guess1 +「)」)。css(「background」,「#333」);很好地工作! :) – Sahil

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/