如果某些元素被修改了吗?

时间:2012-10-27 04:17:39

标签: jquery

基本上我有一个表单,当它被提交时,我将一个类添加到空白字段以突出显示它们。

但是,当用户开始填写输入或更改“选择”时,我想删除此类。

这就是我正在尝试的,我的问题是我不知道如何只选择已修改的元素。我怎么能这样做?

$("input, select").change(function(){
    $('input').removeClass('highlight'); // Only affect modified element
    });

3 个答案:

答案 0 :(得分:1)

我猜你可以使用$(this)

$("input, select").change(function(){
  $(this).removeClass('highlight'); // Only affect modified element
});

答案 1 :(得分:1)

使用this。这是一个非常常见的jQuery习惯用法,包含所有事件(以及许多非事件)回调。

$("input, select").change(function(){
    $(this).removeClass('highlight'); // Only affect modified element
});

http://api.jquery.com/bind/#event-handlers

  

handler参数采用回调函数,如上所示。在处理程序中,关键字this引用处理程序绑定到的DOM元素。要在jQuery中使用该元素,可以将其传递给普通的$()函数。

答案 2 :(得分:0)

只需使用$(this)即可。默认情况下,jQuery方法将该参数用作事件元素。如果您只想影响input,那么:

$(this).filter("input").removeClass(...)