我正在搜索谷歌只是出路生成&通过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] < / p>
请指导我详细说明以上粗体语法。感谢
答案 0 :(得分:1)
按问题顺序:
括号[]
定义一个数组。所以在第二行中它定义了包含三个项目的数组:
var form = [ "first item", "second item", "third item", ... etc ];
form.join('')
将form
数组的所有元素与空字符串的分隔符连接起来,因此form
成为一个字符串,其中包含来自数组的连接子字符串。
jQuery(form.join(''))
将您的字符串转换为DOM元素,appendTo("body")
将这些元素(<form><input> ... </form>
)附加到body
内。
使用[0]
得到form
,但不是作为jQuery对象而是作为DOM元素。原生form
元素的方法submit
使用.submit()
调用。
对于使用原生JavaScript方法和函数的任何疑问,您可以阅读MDN。 jQuery文档在api.jquery.com提供。
答案 1 :(得分:1)
[]括号表示表格是一个数组。
Array.join方法将数组中的所有字符串连接成一个大字符串。在您的代码中,这将成为表单html标记。
appendTo('body')方法,将form-html附加到文档正文,并返回jquery选择器。
因为jQuery选择器可以指向多个元素(它是一个数组),所以需要指定它是您要提交的第一个元素。因此[0]。
答案 2 :(得分:1)
以下是对您的一些疑问的解释。
通过包裹像[ '<form method="POST" action="', url, '">' ]
这样的方形元素它变成一个数组。
form.join('')
这将加入使用.push()
方法创建的表单数组。
当我们将[0]用于jQuery选择器时,它将成为jQuery对象的一个节点。我们可以在哪里使用普通的javascript操作。
.appendTo('body')
这会将内容附加到body元素。