私は次の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にクラスを割り当てたくありません。
私の見方では、1レベル上にジャンプして、前の兄弟、おそらくparent()とprev()の組み合わせを取得できるスクリプトを作成したいのですが、正しく理解できませんでした。助言がありますか?