我找到了两种不同的方法来查找输入到表单中的数据,但不确定要使用哪一种。我将使用一个相当大的形式,所以性能很重要。第一个选项使用.serializeArray()
,第二个选项使用.find().val()
选项 1:
var values = {};
$.each($growDetailsForm.serializeArray(), function (i, field) {
values[field.name] = field.value;
});
var getValue = function (valueName) {
return values[valueName];
};
var first = getValue("first-name");
var first = getValue("last-name");
...
选项 2:
var $form = $('form');
var $first = $form.find('.first-name').val();
var $last = $form.find('.last-name').val();
...
有谁知道哪个选项更快?我假设选项 1 更快,因为我相信它会一次抓取所有值并将它们放入数组中,从而为您提供一个较小的对象进行搜索。选项 2 每次我查找某个值时都会搜索整个 DOM,这让我觉得它更慢。然而,我不是专家,所以我不是真正的自信。如果我只搜索两个值,可能不会有太大区别,但我会搜索更多。任何见解都值得赞赏。
除非你的表格很大(读起来太大了!(,否则它不会有任何明显的区别,但如果你想亲眼看看,你可以在这里找到。
我倾向于以后维护代码的可读性,所以第二种方法对我来说似乎更好,尽管您可以进一步简化它以$('.first-name').val()