2

次のテーブル構造があります。

            <tr>
                <th><label for="ctl00_bodyContent_username">username:</label></th>
                <td class="field"><input name="ctl00$bodyContent$username" type="text" id="ctl00_bodyContent_username" /></td>
                <td class="info">
                    <div class="message">what do you want to be known as?</div>
                    <div class="valid">username available</div>
                    <div class="invalid">this username is already taken</div>
                </td>
            </tr>

私が達成しようとしているのは、テキストボックス #ctl00_bodyContent_username にフォーカスがある場合、隣接するテーブルセルに te div .message が表示されます (デフォルトは display:none)。

4

3 に答える 3

2
$("#ctl00_bodyContent_username").focus(function(){
  $(".message").show();
})

Show()メソッドについて簡単に説明します。

アニメーションなしの show( speed, [callback] ) と同じです。選択した要素がすべて表示されている場合は何も変更されません。要素が hide() 呼び出しによって非表示にされているか、スタイルシートの display:none によって非表示にされているかは問題ではありません。

From : JQuery エフェクト

于 2009-10-18T00:50:55.807 に答える
1

これらが複数あると仮定します(他の人が想定しているように1つだけではありません):

$("td.field :input").focus(function() {
  var info = $(this).parent().next();
  if ($(".valid:visible, .invalid:visible", info).length == 0) {
    info.children("message").show();
  }
}).blur(function() {
  var info = $(this).parent().next();
  info.children("message").hide();
});

これは、フィールドがフォーカスを失ったときにメッセージを非表示にすることも前提としています。

于 2009-10-18T00:57:00.173 に答える
0

これを試して:

$("#ctl00_bodyContent_username").focus(function(){
  $(this).parent().next().children('.message').show();
})

どこ

要素の直接の親を取得します。要素のセットで呼び出された場合、parent はそれらの一意の直接の親要素のセットを返します。

指定された要素の各セットの一意の次の兄弟を含む要素のセットを取得します。

子供

一致した要素の各セットの一意の直接の子をすべて含む要素のセットを取得します。

見せる

一致した要素のセットが非表示の場合、それぞれを表示します。

詳細については、jQuery ドキュメントのトラバースを参照してください。

于 2009-10-18T00:59:36.913 に答える