0

ページから値をドラッグするjqueryがあります。要素の 1 つは、フォーム入力に応じて動的に作成されるデータ属性です。値を返しますが、最初のループでその前に「未定義」を貼り付けます。

関連コードは次のとおりです...

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);
        });
}

データを再選択する理由は、追加部分が抽出時とは異なる関数内に含まれているためです。

なぜそれが未定義として出てくるのか理解できません。

4

2 に答える 2

1

私は問題を見つけました:-

var files_inform;

する必要があります-

var files_inform="";

変数を宣言するだけでは、この最初の状態は未定義であるように見えますが、空として宣言することは、変数に何も含まれていないことを意味します。

于 2012-09-16T11:00:13.783 に答える
1

files_inform変数は、ループが開始したときと同じでundefinedあり、その後、文字列値の追加を開始します。undefined + "SomeString"です"undefinedSomeString"files_inform空の文字列に初期化します。

var files_inform = '';
于 2012-09-16T10:57:53.487 に答える