例如:
$('.input-xlarge').keyup(function(element) {
element.parent().parent().removeClass("error success");
});
场景:
我在 .input-xlarge 类下有许多输入字段,根据表单提交后的成功状态,它们的颜色为绿色或红色。 (非ajax形式)
现在我希望它对用户更加友好 - 当字段状态从服务器返回时,我的字段会一直呈红色发光,直到启动下一次使用有效输入的提交。
需要什么:
因此,在用户提交表单后,收到一些字段 - 有些处于有效状态,有些处于无效状态,我希望每当用户开始在其中输入时字段都是中性装饰。
什么不起作用:
根据我提供的代码,我期望:
- 每当用户开始输入时,触发任何具有 .input-xlarge 类的输入字段的事件。
- 指出哪个输入字段确切需要将 css 装饰(删除 css 类)更改为中性白色。
不幸的是,我似乎无法提取触发 .keyup 事件的实际输入元素。可以这样做吗?
正如你所看到的,我知道之后到 css 元素的确切导航,但根对象最终出现错误:
Uncaught TypeError: Object #<Object> has no method 'parent'
最佳答案
在函数内部,您可以使用 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/