我正在尝试使用JQuery Selector内部的变量和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
});
谢谢!
答案 0 :(得分:4)
由于ID应该是唯一的,因此您真正需要的只是$('#name')
。
在任何情况下,如果你想在另一个元素中找到一个元素并且你已经有了对该元素的引用,那么不要连接选择器(如果元素没有ID会怎样?)。请改用遍历方法,例如.find
。例如:
var value = $(this).find('input[name="name"]').val();
查看所有遍历方法:http://api.jquery.com/category/traversing/tree-traversal/。
如果您真的必须动态构建选择器,请使用字符串连接,如前所述。选择器只不过是一个字符串。例如:
$('input[name="' + inputName + '"]')
答案 1 :(得分:1)
你只是连接一个字符串:
id + ' #name'
使
var name = $(id + " #name").val();
这很奇怪,因为id
可能不是元素,因此您需要添加#
:
'#' + id + ' #name'
这仍然很奇怪,因为你奇怪地使用了id。
答案 2 :(得分:0)
只需像任何其他字符串一样构建选择器字符串:
var name = $("#" + id).val();
答案 3 :(得分:0)
您可以连接字符串以创建正确的选择器,或者您可以使用以下方式:
$('#name', this).val()
,与写$(this).find('#name').val()