将 div 文本覆盖为 0 或 1 取决于 div 文本



我有这个html:

<td>
  <div class="status">10</div>
  <span class="fa fa-times-circle"></span>
</td>

我有下面的脚本,如果文本为 <30,则将"状态"类覆盖为 1,如果文本为>30,则为 0。在上述情况下,类状态为 10,所以我需要它来覆盖并指示 1。我拥有的脚本没有这样做。谁能帮忙?

$.each($('tr .status'), function(i, v) {
    var $this = $(this).text();
  if($this > 0) {
    ($this < 30) ? $(this).text('1') : $(this).text('0');
  }
});

$.each($('.status'), function(i, v) {
  var $this =parseInt( $(this).text());
  if ($this > 0) {
    ($this < 30) ? $(this).text('1'): $(this).text('0');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="status">10</div>
<span class="fa fa-times-circle"></span>

  1. 解析要比较的文本

你正在将文本与数字进行比较,这将给出一些时髦的输出。尝试执行以下操作:

$.each($('tr .status'), function(i, v) {
  var $this = $(this);
  var value =  Number($this.text());
  if(value > 0 && !== isNaN(value)) {
    (value < 30) ? $this.text('1') : $this.text('0');
  }
});

这样,您可以将值强制为数字。

在你的代码中你使用的是tr .status但在你的 HTML 中它是一个 DIV,所以它应该是div.status的,你也应该使用 parseInt(),因为$(this).text()会给你一个字符串,而不是一个整数。

https://jsfiddle.net/sbyc4mfp/

看看这段 JavaScript:

$('tr .status')

此级联不适合您的 HTML 代码。将级联更改为

 $('td .status') 

或在 HTML 中将 td 标记更改为 tr 标记。

最新更新