考虑以下示例,该示例注册onchange回调:

function appendToSaveArray(field)
{
    saveArray[field.attr("id")] = field.attr("value");
}

$('#fields input').change(appendToSaveArray);


这个想法是将对多个文本输入所做的最后更改存储在一个数组中。
当我更改输入之一的值(然后将焦点切换到文档的另一个元素)时,将调用函数appendToSaveArray
但是,参数field不包含触发更改的输入元素,这是我所期望的。
如何从功能appendToSaveArray中找出什么输入触发了事件?

最佳答案

change事件处理程序内,this指为其触发事件的输入。您可以直接通过this.value获得其值:

function appendToSaveArray()
{
    saveArray[this.id] = this.value;
}

$('#fields input').change(appendToSaveArray);


DEMO

08-08 05:51