我有以下html结构
<div id="container">
<div class="label">
@Html.LabelFor(m => m.SomeProperty)
</div>
<div class="input">
@Html.EditorFor(m => m.SomeProperty)
</div>
<!--on and on-->
</div>
我想要做的是在标签 div 上设置背景颜色,当相应 div 中的输入具有焦点时。
换句话说,当用户单击(或选项卡) SomeProperty 的文本框时,我想通过向标签 div 添加一个 css 类来突出显示 SomeProperty 的标签。
我知道我可以在标签 div 上设置 class="SomeProperty" 然后有一些 jQuery 来添加一些 CSS,如下所示:
$('#container input').focus(function () {
var thisId = $(this).attr('id');
$('.' + thisId).addClass('highlight');
//...
});
但我想知道是否有更好的方法。我真的不想为所有标签 div 分配类,因为它看起来很草率,而且可能很难在以后维护。
在我看来,我想写一个可以跳上一级的脚本,然后抓取上一个兄弟,可能是 parent() 和 prev() 的某种组合,但我一直没能做到。有什么建议么?