JQuery数据选择器返回值+ undefined

时间:2012-09-16 10:40:59

标签: jquery jquery-selectors undefined

我有一段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'>&pound;<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);
        });
}

重新选择数据的原因是附加部分包含在与提取数据时不同的函数中。

无法弄清楚为什么它会变成未定义的。

2 个答案:

答案 0 :(得分:1)

循环开始时files_inform变量等于undefined,然后开始向其附加字符串值。 undefined + "SomeString""undefinedSomeString"。将files_inform初始化为空字符串:

var files_inform = '';

答案 1 :(得分:1)

我发现了问题: -

var files_inform;

应该是 -

var files_inform="";

仅仅通过声明变量似乎意味着第一个状态是未定义的,而将其声明为空则意味着它不包含任何内容。