Javascript 如果';输入[类型=';隐藏';]:第一个';是未定义的
这段代码获取表中的所有数据行,但是,如果第一个隐藏输入不包含文本,我不想在数组中保存项Javascript 如果';输入[类型=';隐藏';]:第一个';是未定义的,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,这段代码获取表中的所有数据行,但是,如果第一个隐藏输入不包含文本,我不想在数组中保存项 $('.save').on("click",function(){ var array = $.map($('table tr'), function (val, i) { var obj = {}, inputs = $(val).find('td input[type='hidden'],input[type='text'],select');
$('.save').on("click",function(){
var array = $.map($('table tr'), function (val, i) {
var obj = {}, inputs = $(val).find('td input[type='hidden'],input[type='text'],select');
obj[inputs.filter('input[type='hidden']:first').val()]
= $.map(inputs.not('input[type='hidden':first'),
function (val, i) {
return val.value;
});
return obj;
});
var data = JSON.stringify(array);
});
这是我的数组的一个示例结果:
[{"add":["orange","1","Yes"]}[{"":["apple","2","Yes"]}]
注意第二项,它包含空的(不是“add”),我不希望它保存在我的数组中。非常感谢您的帮助
请参见此处尝试以下操作:
var array = $.map($('table tr'), function (val, i) {
var obj = {},
inputs = $(val).find('td input[type=\'hidden\'],input[type=\'text\'],select');
var inputVal = inputs.filter('input[type=\'hidden\']:first').val();
if (inputVal.length) {
obj[inputVal] = $.map(inputs.not('input[type=\'hidden\']:first'),
function (val, i) {
return val.value;
});
}
return obj;
}).filter(function (val) {
return !$.isEmptyObject(val)
});
如果你想排除空的
数组
,你必须在调用映射
后运行过滤器
。你能提供一个提琴吗“不包含文本”与“未定义”是非常不同的标准,你想要哪个?@Mritunjay看到这个提琴siri的意思是不包含隐藏输入的文本sir你能检查这个提琴吗,先生,我无法提醒数组哇谢谢,先生,但是如果我添加空标志,值没有保存,但是数组项在那里,[{“add”:[“orange”,“1.00”,“Yes”]},{}]
对,就像我在代码示例下面提到的,你必须运行一个过滤器
:没问题,很乐意帮忙。