在输入焦点上更改标签背景颜色

时间:2012-12-17 03:19:17

标签: jquery html css forms

所以,我正在尝试更改表td元素的背景颜色,该元素包含输入项的标签。输入项本身位于行中的以下td元素中。我试图在输入项目的焦点上强制进行此背景颜色更改。以下是我编码的内容。它在这一点上没有奏效。

$(".input_field").child("input").focus(function() {
    $(this).parent("td").sibling("td").css("background","#cf4f92");
});

<tr>
    <td class="label_name"><label for="email">Email</label></td>
    <td class="input_field"><input type="text" name="email" maxlength="28" /></td>
</tr>

td.label_name {
    background:#dc95ba;
    color:#fff;
    font-size:16px; font-weight:bold; line-height:16px;
    padding:2px;
    text-align:right; text-transform:uppercase;
}
td.label_name label {
    margin:0 10px;
    max-width:150px; width:auto;
}
td.input_field {
    margin:0; padding:0;
}
td.input_field input {
    border:1px solid #dc95ba;
    color:#e1a4c4;
    font-weight:bold;
    margin:0 0 0 -2px; padding:2px 2px 2px 10px;
    width:200px;
}
td.input_field input:focus {
    border:1px solid #cf4f92;
}

2 个答案:

答案 0 :(得分:1)

这里的解决方案。 http://jsfiddle.net/J9bWE/1/

我在tr上添加了一个课程。

<tr class="EntryRow">
    <td class="label_name"><label for="email">Email</label></td>
    <td class="input_field"><input type="text" name="email" maxlength="28" /></td>
</tr>

不要我怎么叫tr

$(".input_field input").focus(function() {
    $(this).closest(".EntryRow").find(".label_name").css("background","#cf4f92");
});

答案 1 :(得分:1)

试试这个。它的工作原理

$(".input_field > input").focus(function() {
    $(this).closest("tr").children("td:first").css("background","#cf4f92");
});​