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

时间:2017-05-09 09:52:01

标签: javascript jquery

我有这个HTML:

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

我在下面的脚本中覆盖了&#39;状态&#39;如果其文本为&lt; 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');
  }
});

4 个答案:

答案 0 :(得分:0)

&#13;
&#13;
$.each($('.status'), function(i, v) {
  var $this =parseInt( $(this).text());
  if ($this > 0) {
    ($this < 30) ? $(this).text('1'): $(this).text('0');
  }
});
&#13;
<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>
&#13;
&#13;
&#13;

  1. 解析要比较的文字

答案 1 :(得分:0)

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

Vue.component('greeting', {
template: '<h1>Basic Component</h1>'
});

var vm = new Vue({
 el: '#application'
 });

通过这种方式,您可以将值强制为数字。

答案 2 :(得分:0)

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

https://jsfiddle.net/sbyc4mfp/

答案 3 :(得分:-1)

看看这段JavaScript:

 $('td .status') 

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

<div ng-repeat="Name in Names">
    <input type="checkbox" ng-change="checkchange($index)"
           ng-model="Name.MaterialStream" />
</div>

或将td-tag更改为HTML中的tr-tag。