javascript
  • jquery
  • 2012-08-03 31 views 1 likes 
    1

    我有一個HTML表格Jquery-查找元素賦予樣式屬性

    <table class="mytable"> 
         <tr> 
          <td> 
          test value 
          </td> 
         <tr> 
        </table> 
    

     $(".mytable tr:first").append("<td id='scheduledInMyLearnStatus' class='changeFieldValue' style='background-color:#FE2E2E;'></td>"); 
    

    現在載入的頁面動態地添加一個TD上點擊特定TD我想比較它是否已經backgroung顏色=#FE2E2E 或具有其他任何

    $('td').live('click', function() { 
    
         //compare here 
        }); 
    
    +0

    http://api.jquery.com/css/ - 用於獲取一個css的價值屬性。試一試:)例如$(元素)的.css( '背景色') – nbrooks 2012-08-03 06:40:42

    回答

    4

    你可以使用jQuery css()方法,請注意live()已被棄用,你可以使用on代替:

    $(document).on('click', '#scheduledInMyLearnStatus', function(){ // or $('.mytable').on 
        if($(this).css('background-color') == "rgb(254, 46, 46)") { 
         // do something 
        } 
    }) 
    

    DEMO

    +1

    由於'.myTable'是靜態的,你用'」 .myTable''取代'document'獲得更好的性能。 (+1) – nbrooks 2012-08-03 06:43:52

    +0

    爲什麼用RGB值進行比較? ($(this).css('background-color')==「#FE2E2E」){ //做些什麼 – monda 2012-08-03 06:49:10

    +0

    @monda不幸的是,'css()'返回一個rgb值。 – undefined 2012-08-03 06:50:01

    1

    我相信你可以只使用一個選擇:

    $(document).on("click", ".changeFieldValue[style~='background-color']", function() { 
        // do something 
    }); 
    

    如果u需要確定的顏色,「背景色:RGB(200,122,122)」,而不是僅僅「背景色」。

    1

    你可以讓你的函數看起來像

    $( 'mytable的TD ')。住(' 點擊',()的函數 {

     bgColor= hexc($(this).css("background-color")); 
         if(bgColor.toUpperCase() == "#FE2E2E") 
         { 
          alert("Background color matched to '#FE2E2E'") 
         } 
         else 
         { 
          alert("Background color don't matched to '#FE2E2E'") 
         } 
    
        }); 
    

    和認定中的hexc將

    功能hexc(colorval)

    { 
        var color = ""; 
        var parts = colorval.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); 
        if(parts != null) 
        { 
         parts[0] = "#"; 
         for (var i = 1; i <= 3; ++i) 
         { 
          parts[i] = parseInt(parts[i]).toString(16); 
          if (parts[i].length == 1) parts[i] = '0' + parts[i]; 
         } 
         color = parts.join(''); 
        } 
        return color; 
    } 
    
    相關問題