javascript - 我无法正确使用 JQuery hasClass 函数

标签 javascript jquery html css frontend

我有两行,我想使用 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作为它的 child

Permitted content: Zero or more <td> or <th> elements, or a mix of them

所以用 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>

关于javascript - 我无法正确使用 JQuery hasClass 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30596052/

相关文章:

javascript - PHP函数无法调用

Javascript : Console loop

javascript - 如何使用 JavaScript/jQuery 替换 URL 的路径名?

jquery - 如何在jquery中引用外部 "$(this)"?

javascript - 如何在 javascript 中计算 gridview 中的行数?

线程

javascript - 如何将Backbone.View绑定(bind)到DOM中类似元素列表中的 'single' DOM元素

html - 小网页移位,需要修改一条CSS规则

html - 水平居中 45 度旋转 div

javascript - 添加/删除 CSS 会导致 IE9 增加表格的高度