Javascript 根据div文本将div文本覆盖为0或1
我有这个html:Javascript 根据div文本将div文本覆盖为0或1,javascript,jquery,Javascript,Jquery,我有这个html: <td> <div class="status">10</div> <span class="fa fa-times-circle"></span> </td> 10 我有下面的脚本,如果“status”类的文本为30,则将其改写为1。在上面的例子中,类状态是10,所以我需要它覆盖并指示1。我的剧本没有做到这一点。有人能帮忙吗 $.each($('tr .status'), function
<td>
<div class="status">10</div>
<span class="fa fa-times-circle"></span>
</td>
10
我有下面的脚本,如果“status”类的文本为30,则将其改写为1。在上面的例子中,类状态是10,所以我需要它覆盖并指示1。我的剧本没有做到这一点。有人能帮忙吗
$.each($('tr .status'), function(i, v) {
var $this = $(this).text();
if($this > 0) {
($this < 30) ? $(this).text('1') : $(this).text('0');
}
});
$。每个($('tr.status'),函数(i,v){
var$this=$(this.text();
如果($this>0){
($this<30)?$(this.text('1'):$(this.text('0');
}
});
$。每个($('.status'),函数(i,v){
var$this=parseInt($(this.text());
如果($this>0){
($this<30)?$(this.text('1'):$(this.text('0');
}
});代码>
10
当你将文本与数字进行比较时,会得到一些时髦的输出。尝试执行以下操作:
$.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'),函数(i,v){
var$this=$(this);
var value=Number($this.text());
如果(值>0&&!==isNaN(值)){
(值<30)?$this.text('1'):$this.text('0');
}
});
在你的代码中你使用的是tr.status
,但是在你的HTML中它是一个DIV,所以它应该是DIV.status
,你也应该使用parseInt()
,因为$(this.text()
会给你一个字符串,而不是一个整数
看看这段JavaScript:
$('tr .status')
此级联不适合您的HTML代码。
将级联更改为
$('td .status')
或者在HTML中将td标记更改为tr标记。将.text
更改为.HTML
。并将$更改为$('tr.status')。每个(函数(i,v))
能否在MasterJoe提供您的所有代码请编辑并细化您的问题,如想要的HTML示例。在使用jquery代码段之后,您的代码段被指示为,但它不存在于我们的示例片段中,因此大部分情况下您的示例片段是不完整的。谢谢。@HarshitJain:OP的代码在没有任何更改的情况下工作。第一个可能是个坏主意,第二个是样式。“解析文本进行比较”
和
0
或<30
)。OP的代码工作得很好(尽管我肯定不会这样写)。你为什么认为tr.status
不工作?它不是tr>。status
将td
更改为tr
??真正地HTML不是这样工作的。它是tr.status
所以很好,它不是tr.status