2017-05-09 54 views
-1

我有這個網站:覆蓋格文本爲0或1取決於格文本

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

而且我有下面的腳本覆蓋「狀態」類爲1,如果它的文本是< 30和0如果> 30。在上面的例子中,班級狀態是10,所以我需要它來覆蓋並且表示1.我的腳本沒有這樣做。誰能幫忙?

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

變化'.text'到'.html'。並且將'$ .each'改爲'$('tr .status')。each(function(i,v))' –

+0

你可以提供你所有的代碼@MasterJoe –

+0

請編輯和優化你的問題, 。在你jQuery代碼片段後,你的代碼是,但它不在我們的樣本片段中,所以大部分你的樣本片段不完整。 – TheCodeKiller

回答

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. 分析文本比較
+0

*「解析比較文」 *'>'和'<'比較一個數字(如'> 0'或'<30')時都將迫使字符串號碼。 OP的代碼工作得很好(儘管我不會寫這些代碼)。 –

+0

感謝guradio!有用。 – MasterJoe

0

你比較反對數字文本,這是要給一些時髦的輸出。嘗試執行以下操作:

$.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'); 
    } 
}); 

以這種方式強制值爲數字。

0

在你的代碼正在使用tr .status但在你的HTML的一個DIV,所以它應該是div.status,也應該使用parseInt()因爲$(this).text()會給你一個字符串,而不是一個整數。

https://jsfiddle.net/sbyc4mfp/

+1

這是'tr .status'很好,它不是'tr.status' –

-1

只要看看這段JavaScript代碼:

$('tr .status') 

這種級聯不適合你的HTML代碼。 級聯更改爲

$('td .status') 

或TD-標籤更改爲在HTML的TR-標籤。

+1

你爲什麼認爲'tr .status'不起作用?它不是'tr> .status' –

+0

將'td'改爲'tr'?真?這不是HTML的工作原理。 –