从选择器处理多个 id 的地方获取实际 id
Getting the actual id from where slector works on multiple id
我正在与 jQuery 合作。我有一个 Javascript 方法,它适用于两个这样的选择器 -
$('#from1, #form2').submit(function() {
....
....
//is there any way to know the actual id (that is - form1 or form2)
//for which the submit() method is called
}
这是一个相当大的方法,其中两种形式(form1
和 from2
)共享几乎相同的代码,因此我不想编写多个 submit()
方法分别为每个表格。那么有什么方法可以得到实际的 id
来调用 submit
方法。
$(this).attr('id')
$(this)
将指向触发 submit
事件的 form
。
这是所有事件处理程序中的通用语法。 this
将指向触发事件的元素,而 $(this)
将使它成为一个 JQuery 对象,以便您可以在其上使用许多内置的 JQuery 语法,就像我们使用了 .attr('id')
假设 <form>
元素是匿名方法内部的 this
,因为它们看起来来自您(非常删节的)发布的代码,那么您可以简单地使用:
$('#form1, #form2').submit(function(){
let formID = this.id;
// or (expensively, redundantly):
// formID = $(this).prop('id');
// or:
// formID = $(this).attr('id');
});
但是,如果 <form>
的子元素是 this
,那么您可以改用:
$('#form1, #form2').submit(function(){
let formID = this.form.id;
});
请注意,在上面我已经更正了我认为是选择器中的拼写错误,#from1
已更改为 #form1
。
此外,正如评论中正确指出的那样,let
是一种相对较新的 ES6 变量声明替代方案;如果您需要支持旧版浏览器,您可能不得不坚持使用 var
。
我正在与 jQuery 合作。我有一个 Javascript 方法,它适用于两个这样的选择器 -
$('#from1, #form2').submit(function() {
....
....
//is there any way to know the actual id (that is - form1 or form2)
//for which the submit() method is called
}
这是一个相当大的方法,其中两种形式(form1
和 from2
)共享几乎相同的代码,因此我不想编写多个 submit()
方法分别为每个表格。那么有什么方法可以得到实际的 id
来调用 submit
方法。
$(this).attr('id')
$(this)
将指向触发 submit
事件的 form
。
这是所有事件处理程序中的通用语法。 this
将指向触发事件的元素,而 $(this)
将使它成为一个 JQuery 对象,以便您可以在其上使用许多内置的 JQuery 语法,就像我们使用了 .attr('id')
假设 <form>
元素是匿名方法内部的 this
,因为它们看起来来自您(非常删节的)发布的代码,那么您可以简单地使用:
$('#form1, #form2').submit(function(){
let formID = this.id;
// or (expensively, redundantly):
// formID = $(this).prop('id');
// or:
// formID = $(this).attr('id');
});
但是,如果 <form>
的子元素是 this
,那么您可以改用:
$('#form1, #form2').submit(function(){
let formID = this.form.id;
});
请注意,在上面我已经更正了我认为是选择器中的拼写错误,#from1
已更改为 #form1
。
此外,正如评论中正确指出的那样,let
是一种相对较新的 ES6 变量声明替代方案;如果您需要支持旧版浏览器,您可能不得不坚持使用 var
。