在Jquery选择器中使用变量

在Jquery选择器中使用变量,jquery,Jquery,我试图使用JQuery选择器中的一个变量和一个Id来选择正确的输入值,因为我有多个表单。如何将变量和id选择器一起使用 我的代码: $("form").submit(function() { var id = $(this).attr("id"); //this grabs the id of the form being submitted var name = $("id #name").val(); <-- this is the line in questio

我试图使用JQuery选择器中的一个变量和一个Id来选择正确的输入值,因为我有多个表单。如何将变量和id选择器一起使用

我的代码:

$("form").submit(function() {
    var id = $(this).attr("id"); //this grabs the id of the form being submitted
    var name = $("id #name").val();    <-- this is the line in question
});
$(“表单”).submit(函数(){
var id=$(this.attr(“id”);//它获取正在提交的表单的id

var name=$(“id#name”).val()您只是在连接一个字符串:

id + ' #name'
这使得

var name = $(id + " #name").val();
这很奇怪,因为
id
可能不是一个元素,所以需要添加
#


这仍然很奇怪,因为您奇怪地使用了id。

只需像任何其他字符串一样构建选择器字符串:

var name = $("#" + id).val();

由于ID应该是唯一的,所以您真正需要的是
$('#name')

在任何情况下,如果您想在另一个元素中找到一个元素,并且您已经有了对该元素的引用,请不要连接选择器(如果该元素没有ID怎么办?)。请改用遍历方法,例如:

var value = $(this).find('input[name="name"]').val();
请查看所有遍历方法:

如果确实需要动态构建选择器,请使用前面提到的字符串连接。选择器只不过是字符串。示例:

$('input[name="' + inputName + '"]')

您可以连接字符串以创建正确的选择器,也可以使用以下方法:

$('#name',this.val()
,这与write
$(this.find('#name').val()

相同,使用标准javascript字符串连接,
$('#name'+id+'#name').val()
假设
id
是唯一的,您可以说
$(“#name”).val()
。为什么要获取表单id?您可以使用提交的表单元素。+1.当您在中编辑时,我几乎输入完有关使用
'input[name=“name”]'
的注释。
$('input[name="' + inputName + '"]')