如何使用类更改背景颜色以定位控件的ID

时间:2016-03-03 15:22:50

标签: jquery asp.net

<asp:TextBox ReadOnly="true" ID="tbPhone" ClientIDMode="Static" runat="server" CssClass="tbStyle changeUpdate" Text=""></asp:TextBox>
<asp:TextBox ReadOnly="true" ID="tbFax" ClientIDMode="Static" runat="server" CssClass="tbStyle changeUpdate" Text=""></asp:TextBox>

$('#tbPhone, #tbFax').keypress(function() { //works
    this.style.backgroundColor = "#BCFFB9";
});

我会有很多文本框,并希望为每个文本框使用一个类,获取ID并设置背景颜色。这将确保我可以为所有文本框使用几行代码,无论数字如何。

所以我试过这个:

$(".changeUpdate").keypress(function() {
    $(this).attr("id").style.backgroundColor = "#BCFFB9";
});

但我一直收到这个错误:

0x800a138f - Microsoft JScript runtime error: Unable to set value of the property 'backgroundColor': object is null or undefined

如何解决我的问题。

2 个答案:

答案 0 :(得分:5)

你有点混合Javascript和jQuery语法,试试这个:

$(".changeUpdate").keypress(function() {
    //$(this).attr("id").style.backgroundColor = "#BCFFB9";
    $(this).css("background-color","#BCFFB9");
});

答案 1 :(得分:1)

您没有正确选择班级&#39; changeUpdate&#39;用你的代码。 $(this).attr("id")获取元素的id,但不选择它,这就是为什么存在未定义的引用错误。

使用:

// when the keypress event happens on an element with class changeUpdate
$('.changeUpdate').keypress(function () {

   // Select all elements with class changeUpdate and change the css attribute 'background-color' to the color specified
   $('.changeUpdate').css('background-color', '#BCFFB9');
});

或使用$(this).css('background-color', '#BCFFB9');仅使用按键更改元素的背景颜色。