javascript - 上一个在 div 内不起作用

标签 javascript jquery

当文本框具有焦点时,我试图更改标签的颜色

 <div class="editor-label">
     <%: Html.LabelFor(model => model.FirstName) %>
 </div>
 <div class="editor-field">
     <%: Html.TextBoxFor(model => model.FirstName) %>
     <%: Html.ValidationMessageFor(model => model.FirstName) %>
 </div>

这是我的 JavaScript

  $(':text').focus(function () {
        $(this).prevAll("label").last.css("color", "blue");
  });

$(this).prevAll() 始终为空。但是 $(this).next()$(this).nextAll() 有一个跨度

请帮忙,我非常感谢任何帮助

最佳答案

$(this).prevAll("label") 为空,因为 prevAll("label") 将查找文本框的同级标签。你应该这样做:

$(':text').focus(function () {
    $(this).parent("div").prev().find("label").css("color", "blue");
});

next()nextAll() 返回一个跨度,因为以下代码将呈现为一个跨度,它是文本框之后的下一个元素。

<%: Html.ValidationMessageFor(model => model.FirstName) %>

关于javascript - 上一个在 div 内不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5692280/

相关文章:

javascript - 获取 Google Static Maps API 的西南 Angular 和东北 Angular

javascript - 无法使用 $.post() 发布 javascript 对象

javascript - 具有网格布局的 Jquery 仪表板

javascript - 在提交时向表单添加外部输入值

javascript - 从网页上的 php 调用的 html 和 div 添加的 Jquery 函数无法正常工作

javascript - 添加 live 到 jquery 功能

javascript - 停止事件从子级到父级以及中间的传播

javascript - 异步 mongodb 更新循环中最后一次迭代后的重定向

javascript - 在iPhone的同一HTML页面上同时播放多个<audio>标签

javascript - 设置可拖动div的位置