jquery - 如何确定哪个元素在 .keyup jquery 方法调用上触发?

标签 jquery element typing

例如:

  $('.input-xlarge').keyup(function(element) {
              element.parent().parent().removeClass("error success");
          });

场景:

我在 .input-xlarge 类下有许多输入字段,根据表单提交后的成功状态,它们的颜色为绿色或红色。 (非ajax形式)

现在我希望它对用户更加友好 - 当字段状态从服务器返回时,我的字段会一直呈红色发光,直到启动下一次使用有效输入的提交。

需要什么:

因此,在用户提交表单后,收到一些字段 - 有些处于有效状态,有些处于无效状态,我希望每当用户开始在其中输入时字段都是中性装饰。

什么不起作用:

根据我提供的代码,我期望:

  1. 每当用户开始输入时,触发任何具有 .input-xlarge 类的输入字段的事件。
  2. 指出哪个输入字段确切需要将 css 装饰(删除 css 类)更改为中性白色。

不幸的是,我似乎无法提取触发 .keyup 事件的实际输入元素。可以这样做吗?

正如你所看到的,我知道之后到 css 元素的确切导航,但根对象最终出现错误:

Uncaught TypeError: Object #<Object> has no method 'parent' 

enter image description here

最佳答案

在函数内部,您可以使用 this 来获取触发该函数的元素。使用这个:

$('.input-xlarge').keyup(function() {
    $(this).parent().parent().removeClass("error success");
});

函数中的第一个参数是事件。另一种方法是在事件对象上使用 currentTarget(与 this 相同):

$('.input-xlarge').keyup(function(e) {
    $(e.currentTarget).parent().parent().removeClass("error success");
});

另外,不要害怕使用console.log()。在本例中使用它会告诉您 element 是一个事件。

关于jquery - 如何确定哪个元素在 .keyup jquery 方法调用上触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583280/

相关文章:

javascript - 如何从数据表内的 selectOneMenu 中删除选定的项目?

javascript - 有什么方法可以选择DOM中不存在的带有JS的CSS类吗?

android - 在android的数组列表中添加项目

jquery - 高度在 jQuery 中返回元素的 0

function - 运算符的 Haskell 类型优先级高于函数

c++ - sleep() 与 rand() 一起使用,在 C++ 中出现错误

javascript - jqGrid : open a customised form on click of 'Edit' button and after edit refresh that row

javascript - 在使用整页 js 时如何将动画(如向左滑动、淡入等)添加到 div 中?

javascript - 自动从上到下滚动页面,然后返回(并重复)

php - 什么是动态打字?