2013-10-27 26 views
0

我无法根据行值对表格行进行样式设置。基于值的样式表行(jquery)

目前我有:

$(document).ready(function() { 
      $(".bulkGridClass").find("td").each(function() {    
       $(this).css("color", "Red");    
      }); 
     }); 

而是我需要的是这样的:

$(document).ready(function() { 
     $(".bulkGridClass").find("td").each(function() {    
      // IF TD CONTAINS TEXT "File" THEN add color red 
      $(this).css("color", "Red");    
     }); 
    }); 

我曾尝试使用这样的:

$(this).contains("File") 

但是这表明了我$(this)没有contains

回答

1

text()函数将返回节点的文本。您可以结合起来,与indexOf()检查字符串中,你正在寻找:

$(document).ready(function() { 
    $(".bulkGridClass").find("td").each(function() {    
     if ($(this).text().indexOf('File') > -1) 
      $(this).css("color", "Red");    
    }); 
}); 

另一个(可能更好)选择是使用:contains()选择:

$(document).ready(function() { 
    $('.bulkGridClass td:contains("File")').css("color", "Red");    
}); 

注意:contains()的情况下,敏感,所以File != file

1

可以跳过$.each,只是做:

$(".bulkGridClass td:contains('File')").css("color", "Red"); 

如果区分大小写:

$(".bulkGridClass td").filter(function(){ 
    return $(this).text().toLowerCase().indexOf('file') >-1; 
}).css("color", "Red"); 

提供测试情况下,一些样品的标记