Jquery-查找元素已赋予样式属性

时间:2012-08-03 06:37:32

标签: javascript jquery

我有一个html表

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

加载页面时动态添加td

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

现在单击特定的td我要比较它是否具有背景颜色=#FE2E2E 或者还有别的什么

    $('td').live('click', function() {

       //compare here 
    });

3 个答案:

答案 0 :(得分: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 :(得分:1)

我相信你只能使用一个选择器:

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

如果您需要确定的颜色,'background-color:rgb(200,122,122)'而不仅仅是'background-color'。

答案 2 :(得分:1)

您可以使您的功能看起来像

$('。mytable td')。live('click',function() {

        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;
}