我有一段jquery从页面中拖动值。其中一个元素是根据表单输入动态创建的数据属性。它返回值,但在第一个循环中粘贴“未定义”的前面。
Relevent Code如下......
var get_files_split=get_files.split("*^*");
var files_count=get_files_split.length-1;
if(files_count!=0)
{
$('.uploaded_files').html("");
var app_files="";
for(var y=0;y<files_count;y++)
{
var files_split=get_files_split[y].split("|");
app_files+="<div class='upfile_holder'>";
app_files+="<div class='f_h'><span class='fil1' data-this_file='"+files_split[0]+"'>"+files_split[1]+"</span> (<span class='fil5'>"+files_split[6]+"</span>)</div>";
app_files+="<div class='f_h fil2'>"+files_split[2]+"</div>";
if(files_split[4]!="")
{
app_files+="<div class='f_h'>£<span class='fil3'>"+files_split[4]+"</span> <span class='fil4'>"+files_split[5]+"</span></div>";
}
if(files_split[3]!="")
{
app_files+="<div class='f_notes'>";
app_files+="<p class='fil6'>"+files_split[3]+"</p>";
app_files+="</div>";
}
app_files+="</div>";
}
$(app_files).appendTo('.uploaded_files');
}
这会将数据放在页面上
重新选择数据的JQuery如下......
var files_inform;
if($('.upfile_holder').length)
{
$('.upfile_holder').each(function(){
var file_ids=$('.fil1', this).data('this_file');
var file_name=$('.fil1', this).text();
var file_type=$('.fil5', this).text();
var file_priority=$('.fil2', this).text();
var file_price=$('.fil3', this).text();
var file_tender=$('.fil4', this).text();
var file_notes=$('.fil6', this).text();
files_inform+=file_ids+"|"+file_name+"|"+file_type+"|"+file_priority+"|"+file_price+"|"+file_tender+"|"+file_notes+"*^*";
alert(files_inform);
});
}
重新选择数据的原因是附加部分包含在与提取数据时不同的函数中。
无法弄清楚为什么它会变成未定义的。
答案 0 :(得分:1)
循环开始时files_inform
变量等于undefined
,然后开始向其附加字符串值。 undefined + "SomeString"
是"undefinedSomeString"
。将files_inform
初始化为空字符串:
var files_inform = '';
答案 1 :(得分:1)
我发现了问题: -
var files_inform;
应该是 -
var files_inform="";
仅仅通过声明变量似乎意味着第一个状态是未定义的,而将其声明为空则意味着它不包含任何内容。