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 隐藏的。

来自:JQuery 效果

于 2009-10-18T00:50:55.807 回答
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 回答