1

因此,我正在尝试更改表 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;
}
4

2 回答 2

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");
});
于 2012-12-17T03:26:14.287 回答
1

尝试这个。有用

$(".input_field > input").focus(function() {
    $(this).closest("tr").children("td:first").css("background","#cf4f92");
});​
于 2012-12-17T03:37:50.457 回答