jquery根据table某一格的内容修改整行的css

这篇博客讲述了如何利用jQuery根据表格单元格中的内容来修改对应行的CSS。作者首先展示了一个包含Struts2迭代器的HTML表格,然后通过JavaScript进行处理。在JS部分,博主遍历每个含有'scheduleTd'类的单元格,移除文本中的回车和空格,并对比内容是否等于'已完成'。如果匹配,将修改该单元格所在行的背景色为'#d5d5d5'。博客强调了使用'text()'而非'html()'以及'replace()'去除空白字符的重要性。

table部分内容如下:

<table class="table">
    <tbody>
    <tr>
    <th>进度</th>
    </tr>
    <s:iterator value="#request.lists" id="lists">
    <tr id="list_content"> 
    <td class="scheduleTd"><s:if test="#lists.schedule==1">未开始</s:if>
    <s:elseif test="#lists.schedule==2">进行中</s:elseif>
    <s:elseif test="#lists.schedule==3">已完成</s:elseif></td>    
    </tr>
    </s:iterator>
    </tbody>    
 </table>

此处使用了struts2中的s:iterator遍历获取request中的数据并显示在table中,之后由s:if进行判断,根据获得的数字显示表格中内容,这一步会引起显示内容中带有回车,导致在之后js判断字符串的时候出现问题


js部分如下:

function onload(){

$(".scheduleTd").each(function(){
var str1=$(this).text();   
var str2="已完成";
str1=str1.replace(/^\s+|\s+$/g,"");
if(str1 == str2){
$(this).parent().css("background","#d5d5d5");
}
})

}

 *text()和html()差别在于html()会取得标签,而text()只读取文本内容。

例如在<td>hell<b>o<td>中,用$("td").text()只获取hello文本内容,而html()同时显示“hell<b>o”


*.replace(/^\s+|\s+$/g,"");是为了去除字符串中的回车和空格,在上面有提到,若不加这一步,str1和str2的比较无法完成


*$(this).parent().css("background","#d5d5d5"); 要用$(this)表示仅对当前选中的class为scheduleTd的表格操作,.parent()表示选定它的直系父元素,即当前选定的表格躲在的行(当前td所在的tr),对tr的背景颜色进行操作。此时注意,td的颜色未被设置,若td颜色已设置,这一步对tr的颜色修改会被td的颜色覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值