Javascript 比较tabledata并添加CSS(如果tabledata是
我有一个HTML表格,有几个表格行。每行包含2个tabledata元素。 这些td元素由数字填充 我需要的代码,帮助我比较每行的数字,并添加CSS。 例如:Javascript 比较tabledata并添加CSS(如果tabledata是,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个HTML表格,有几个表格行。每行包含2个tabledata元素。 这些td元素由数字填充 我需要的代码,帮助我比较每行的数字,并添加CSS。 例如: <tr> <td>12</td> <td>15</td> </tr> <tr> <td>3</td> <td>1</td> </tr> 12 15 3. 1.
<tr>
<td>12</td>
<td>15</td>
</tr>
<tr>
<td>3</td>
<td>1</td>
</tr>
12
15
3.
1.
我们总是在第二个tabledata元素上使用CSS如果第二个td的值小于第一个td元素的值,则必须以红色显示。
另一方面,如果第二个td元素的值大于第一个td元素的值,则必须以绿色显示
这意味着表格内容应如下所示:
<tr>
<td>12</td>
<td style='color:green;'>15</td>
</tr>
<tr>
<td>3</td>
<td style='color:red;'>1</td>
</tr>
12
15
3.
1.
如何做到这一点?您可以使用jQuery获取每个
td
元素的内部值,比较这些值并应用给定输出的样式。这假设您总是有两个td
元素。如果继续,您必须循环行中的每个td
,并保持运行计数
$("table tr").each(function(){
var firstTd = $(this).children(":first");
var secondTd = $(this).children(":last");
if (secondTd.html() < firstTd.html()) {
secondTd.css("background-color", "red");
} else if (secondTd.html() > firstTd.html()) {
secondTd.css("background-color", "green");
}
});
$(“表tr”)。每个(函数(){
var firstTd=$(this.children(“:first”);
var secondTd=$(this.children(“:last”);
if(secondTd.html()firstTd.html()){
css(“背景色”、“绿色”);
}
});
您可以尝试使用此功能: 当然,这个解决方案没有使用JQuery 为了以防万一,我也在这里发布了代码:
<body onload="myFunction()">
<table>
<tr>
<td>12</td>
<td>15</td>
</tr>
<tr>
<td>3</td>
<td>1</td>
</tr>
</table>
</body>
<script>
function myFunction(){
var tds = document.getElementsByTagName("td");
for (var i=0; i<tds.length; i++){
if (i>=1 && i%2 != 0){
if (parseInt(tds[i].innerText) > parseInt(tds[i-1].innerText)) {
tds[i].style.color = "green";
} else {
tds[i].style.color = "red";
}
}
}
}
</script>
12
15
3.
1.
函数myFunction(){
var tds=document.getElementsByTagName(“td”);
对于(变量i=0;i=1&&i%2!=0){
if(parseInt(tds[i].innerText)>parseInt(tds[i-1].innerText)){
tds[i].style.color=“绿色”;
}否则{
tds[i].style.color=“红色”;
}
}
}
}
感谢您的帮助!事实上,我的tablerows每个包含4个td元素。因此,在将CSS代码应用于第三个元素时,我将第二个td元素与第三个td元素进行了比较——我将代码更改为:$('table tr.SummaryContentTr')。每个(function(){var secondTd=$(this).子元素(':nth child(2);/var thirdTd=$(this).子元素(':nth child(3);(if)(thirdTd.html()secondTd.html()){thirdTd.css('color','green');}});
但是现在所有的tds(3.child)正在设置为绿色。有什么线索吗?你能把它放到JSFIDLE中并将其作为问题的更新发布吗?我刚刚将代码复制到一个新的fiddle项目中。在fiddle中,代码正在工作。所以我认为问题不在于脚本,而是因为tablerows是使用PHP和数据库动态创建的。我必须以某种方式修复它。哟您的代码工作得非常好,竖起大拇指!您可以将其作为函数进行修复,该函数在创建表时在document.ready
之后调用。