-1

我正在尝试将 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
});

谢谢!

4

4 回答 4

4

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

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

var value = $(this).find('input[name="name"]').val();

查看所有遍历方法:http ://api.jquery.com/category/traversing/tree-traversal/ 。

如果您确实必须动态构建选择器,请使用字符串连接,如前所述。选择器只不过是一个字符串。例子:

$('input[name="' + inputName + '"]')
于 2013-07-07T22:04:07.983 回答
1

你只是连接一个字符串:

id + ' #name'

这使得

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

这很奇怪,因为id可能不是一个元素,所以你需要添加一个#

'#' + id + ' #name'

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

于 2013-07-07T22:00:23.527 回答
0

像任何其他字符串一样简单地构建选择器字符串:

var name = $("#" + id).val();
于 2013-07-07T22:01:12.133 回答
0

You can concatenate the string to create the right selector, or you can use the way:
$('#name', this).val(), that is the same as write $(this).find('#name').val()

于 2013-07-07T22:04:28.907 回答