1

我正在搜索谷歌只是为了有办法通过 jquery 生成和提交表单,我找到了代码片段,但我不清楚。

function submitValues(url, params) {
var form = [ '<form method="POST" action="', url, '">' ];

for(var key in params) 
    form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');

form.push('</form>');

jQuery(form.join('')).appendTo('body')[0].submit();
}

为什么 [] 这第三个括号像

var form = [ '<form method="POST" action="', url, '">' ];

jQuery(form.join('')).appendTo('body')[0].submit();行的含义是什么? 为什么使用 form.join('')以及为什么要像appendTo('body')[0]这样写为什么[0]

请详细指导我了解上述粗体语法。谢谢

4

3 回答 3

1

按问题顺序:

  1. 括号[]定义一个数组。因此,在第二行中,它定义了包含三个项目的数组:

    var form = [ "first item", "second item", "third item", ... etc ];
    
  2. form.join('')将数组的所有元素form与空字符串的分隔符连接起来,因此form成为一个字符串,其中包含来自数组的连接子字符串。

  3. jQuery(form.join(''))将您的字符串转换为 DOM 元素appendTo("body")并将这些元素 ( <form><input> ... </form>) 添加到body.

  4. 使用[0]你得到你的form, 但不是作为 jQuery 对象而是作为 DOM 元素。本机form元素具有使用submit调用的方法.submit()

对于原生 JavaScript 方法和函数的任何疑问,您可以阅读MDN。jQuery 文档在api.jquery.com上提供。

于 2012-06-04T12:36:59.717 回答
1
  1. [] 括号表示 form 是一个数组。

  2. Array.join方法将数组中的所有字符串连接成一个大字符串。在您的代码中,这将成为表单 html 标记。

  3. appendTo('body')方法,将 form-html 附加到文档的正文中,并返回 jquery 选择器。

  4. 因为 jQuery 选择器可以指向多个元素(它是一个数组),所以您需要指定它是您要提交的第一个元素。因此[0]。

于 2012-06-04T12:38:14.047 回答
1

以下是您的一些疑问的解释。

  1. 通过将像它这样的方形元素包装[ '<form method="POST" action="', url, '">' ]成一个数组。

  2. form.join('')这将加入使用该.push()方法创建的表单数组。

  3. 当我们为 jQuery 选择器使用 [0] 时,它成为 jQuery 对象的一个​​节点。在哪里我们可以使用正常的javascript操作。

  4. .appendTo('body')这会将内容附加到 body 元素。

于 2012-06-04T12:43:59.957 回答