addClass使用JQuery来依赖于值

时间:2016-08-10 09:43:10

标签: jquery addclass

Bootstrap提供.danger课程。如果最后<td>的值大于或等于0,我想添加此类。

我的表看起来与此类似:

<table>
 <thead>
  <tr>
   <th>#</th>
   <th>Timestamp</th>
   <th>Failures</th>
  </tr>
 </thead>
 <tbody>
  <tr>  
   <th>1</th>
   <td>date</td>
   <td>0</td>
  </tr>
  <tr>  
   <th>2</th>
   <td>date</td>
   <td>2</td>
  </tr>
</tbody>

我尝试了什么:

$(document).ready(function () {
$("table tbody tr").each(function () {
    var cell = $(this).find("td:last-child").text();

   if ($(this).val()>='0') tr.addClass('danger');       
    else tr.removeClass('danger');
    }
});
})

我认为问题在于从<td>获取价值。或者jQuery期望永久编写<td>的类,并从该类更改为另一个类。

3 个答案:

答案 0 :(得分:0)

更改

  1. 您需要使用当前元素,即this代替tr
  2. 使用.text()获取TD元素没有value的文字 特性
  3. 对于数值比较,将文本转换为适当的日期类型。在示例中,我使用了parseInt()
  4. 代码

    $("table tbody tr").each(function() {
    
       //Read text then it to number
       var cell = parseInt($(this).find("td:last").text(), 10);
       if (cell > 0) {
           $(this).addClass('danger'); //use current element
       } else {
           $(this).removeClass('danger'); //use current element
       }
    
    });
    

    $(document).ready(function() {
      $("table tbody tr").each(function() {
    
        //Parse text to number
        var cell = parseInt($(this).find("td:last").text(), 10);
        if (cell > 0)
          $(this).addClass('danger'); //use context selector this
        else
          $(this).removeClass('danger'); //use context selector this
    
      });
    })
    .danger {
      color: red
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <table>
      <thead>
        <tr>
          <th>#</th>
          <th>Timestamp</th>
          <th>Failures</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <th>1</th>
          <td>date</td>
          <td>0</td>
        </tr>
        <tr>
          <th>2</th>
          <td>date</td>
          <td>2</td>
        </tr>
      </tbody>

答案 1 :(得分:0)

你有两个错误。

  1. 使用val()代替文本
  2. tr未定义。将$(this)分配给tr
  3. $(document).ready(function () {
    $("table tbody tr").each(function () {
        var cell = $(this).find("td:last-child").text();
        var tr = $(this);
    
       if (parseFloat($(this).text())>=0) //notice, I have used parseFloat to parse the number
          tr.addClass('danger');       
       else tr.removeClass('danger');
    });
    })
    

答案 2 :(得分:0)

当您使用$stmt->execute($paramaters); $rows = $stmt->fetchAll(); $count = count($rows); return $count; 之类的逻辑操作时,请不要使用>=中的值,因为这些操作只适用于数字。

" "