簡體   English   中英

我無法正確使用JQuery hasClass函數

[英]I cannot use JQuery hasClass function correctly

我有兩行,我想使用jQuery hasClass。 如果subjFull類具有紅色類,則顯示progressText。 否則,如果subjFull具有綠色類,則顯示progressTextNone。 但是此腳本不起作用。 我該如何解決?

 <tr class="cart-item-row">                         
   <div class="subjFull green"><a href="#">First</a></div>                                                            
   <div class="progressText">Minimum Price</div>
   <div class="progressTextNone">Max Price</div>                           
 </tr>
 <tr class="cart-item-row">                         
   <div class="subjFull red"><a href="#">Second</a></div>                                                            
   <div class="progressText">Minimum Price</div>
   <div class="progressTextNone">Max Price</div>                           
 </tr>

<script type="text/javascript">
if ($(".subjFull").hasClass("red")) {
   $(".progressText").show();
   $(".progressTextNone").hide();
 }

  else if ($(".subjFull").hasClass("green")) {
    $(".progressTextNone").show();
    $(".progressText").hide();
 }
<script>

使用.each()迭代$(".subjFull")然后在當前元素的上下文中執行代碼

另外,您的HTML無效。 tr只能將tdth作為其子級

允許的內容:零個或多個<td><th>元素,或它們的混合

因此,用td將div包裹起來

<tr class="cart-item-row">
    <td>
          <div class="subjFull green"><a href="#">First</a>
          </div>
          <div class="progressText">Minimum Price</div>
          <div class="progressTextNone">Max Price</div>
    </td>
</tr>

 $(function() { $(".subjFull").each(function() { var _this = $(this); var parent = _this.parent(); if (_this.hasClass("red")) { parent.find(".progressText").show(); parent.find(".progressTextNone").hide(); } if (_this.hasClass("green")) { parent.find(".progressTextNone").show(); parent.find(".progressText").hide(); } }); }); 
 .red { color: red; } .green { color: green; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr class="cart-item-row"> <td> <div class="subjFull green"><a href="#">First</a> </div> <div class="progressText">Minimum Price</div> <div class="progressTextNone">Max Price</div> </td> </tr> <tr class="cart-item-row"> <td> <div class="subjFull red"><a href="#">Second</a> </div> <div class="progressText">Minimum Price</div> <div class="progressTextNone">Max Price</div> </td> </tr> </table> 

<script type="text/javascript">
$(document).ready(function(){
    if ($(".subjFull").hasClass("red")) {
       $(".progressText").show();
       $(".progressTextNone").hide();
     }

      else if ($(".subjFull").hasClass("green")) {
        $(".progressTextNone").show();
        $(".progressText").hide();
     }
});
<script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM