2012-08-10 74 views
1

如何檢查<tr>的任何孩子是否包含background:blue;然後執行某些操作?檢查'<tr>`中任何孩子的CSS背景顏色?

$('table tr').each(function(index,value){ 
    if (value.has('background:blue')){ 
     alert (index); //do something to this row 
    } 
}); 
<table> 
    <tr> 
     <td>dfgdfgdfgdf</td> 
     <td><input style="background:blue; value="test" /></td> 
     <td>gdfg</td> 
     <td><p style="background:blue;>cvcxvcxvx</p></td> 
    </tr> 
    <tr> 
    <td>gfdgdfg</td> 
     <td>gdfgfd</td> 
     <td style="background:blue;>dfgdf</td> 
     <td><div><div><button style="background:blue; type="submit"/></div></div></td> 
    </tr> 
    <tr> 
    <td>gfdgdfg</td> 
     <td>gdfgfd</td> 
     <td>dfgdf</td> 
     <td>dfgdf</td> 
    </tr> 
    <tr> 
    <td>gfdgdfg</td> 
     <td>gdfgfd</td> 
     <td>dfgdf</td> 
     <td><div><div><button style="background:blue; type="submit"/></div></div></td> 
    </tr> 
</table> 

回答

2

那是什麼?

$(function() { 
    $('tr').find('*').each(function(i) { 
     if ($(this).css('background-color') == 'rgb(0, 0, 255)') 
      alert($(this).text()); 
    }); 
});​ 

http://jsfiddle.net/xHgVf/3/

2

這會不會是快,但它的工作:

var $blueElements = $("tr *").filter(function() { 
    return $(this).css("background-color") == "blue"; 
}); 

有沒有你不能使用一個CSS類將每個元素的藍色背景的一個原因?那麼你可以使用該類來選擇它們:$(".blue-element")

+0

感謝 - 但我想如果沒有很多的元素,那麼它應該被罰款 - 對嗎?但添加一個css類是一個好主意。謝謝我會試試 – 2012-08-10 08:49:18

+0

這是否會爲你返回任何東西,它對我來說是空的,'$ blueElements.Length'是'0' – 2012-08-10 08:57:14

+0

最後我用$('tr')去了find('。blue-element 「) – 2012-08-10 09:53:25