我找到了两种不同的方法来查找输入到表单中的数据,但不确定使用哪一种方法。我将使用相当大的形式,所以性能是重要的。第一个选项使用.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,这使我认为它要慢一些。不过,我不是专家,所以我没有真正的自信。如果我只搜索两个值,这可能不会有太大的区别,但我将寻找更多的值。任何洞察力都是值得赞赏的。
发布于 2016-01-12 22:38:14
除非您的表单很大(读起来太大了!)这不会产生任何明显的差别,但如果您想亲自查看,您可以找到这里。
为了以后的维护,我更倾向于代码的可读性,所以第二种方法对我来说似乎更好,尽管您可以将其进一步简化为$('.first-name').val()。
https://stackoverflow.com/questions/34754947
复制相似问题