JQuery按背景颜色查找元素

尝试通过使用JQuery查找具有设置为SelectedRowStyle背景颜色的background-color属性的行来访问GridView的Selected行。 那种颜色是#FF6600。 我试过了

var row = $("tr").find().css("background-color", "#FF6600"); 

但这只是将所有行设置为橙色。

 var row = $("tr[background-color=#FF6600"); 

那返回空

 var row = $("tr").find().attr("background-color"); 

返回undefined

试试.filter方法。

 var rows = $('tr').filter(function(){ var color = $(this).css("background-color"); return color === "#FF6600" || color === "rgb(255, 102, 0)" ; }); 

我没有测试过,可能需要调整rgb部分以考虑间距。

编辑:

或者更好的是,这考虑了大写和小写

 var rows = $('tr').filter(function(){ var color = $(this).css("background-color").toLowerCase(); return color === "#ff6600" || color === "rgb(255, 102, 0)" ; }); 

background-color不是属性,它是一个CSS属性。 你可以尝试使用.filter来做到这一点:

 var row = $("tr").filter(function(){ // Chrome returns "rgb(255, 102, 0)" instead of "#FF6600" return $(this).css('background-color') === "rgb(255, 102, 0)"; }); 
 $('tr').each(function(){ if($(this).css('background-color') == '#ff6600'){ //do your stuff } }); 

我在我的代码中使用这个伪jQuery选择器,在实用程序文件中定义:

 (function() { function rgb2hex(rgb) { return '#' + rgb.match(/^rgb\(([^\)]+)\)$/)[1].split(/\s*,\s*/) .filter(Boolean).map(function(n) { return ('00' + parseInt(n, 10).toString(16)).slice(-2); }).join(''); } $.extend($.expr[':'], { // pesudo selector that allow to use :css(color: red) css: function(element, index, meta) { element = $(element); var rules = meta[3].split(';').filter(Boolean); return rules.filter(function(pair) { pair = pair.split(/\s*:\s*/); var css = element.css(pair[0]); if (css.match(/rgb\(/)) { css = rgb2hex(css); } return css === pair[1]; }).length === rules.length; } }); })(); $(function() { $('li:css(color: #ff0000)').css('background', 'black'); }); 
 .red { color: red; } 
  
  • 1
  • 2
  • 3
  • 4