2

助けを求めたいのですが。次のような内部配列を持つ外部 JSON ファイルがあります。

{ "Files": [
    {
        "fileName": "Trains",
        "fileID": "t1"
    },
    {
        "fileName": "Planes",
        "fileID": "p1"
    },
    {
        "fileName": "Cars",
        "fileID": "c1"
    }
]}

JavaScriptを使用して記述しながら、最終的にこのデータを使用してXHTMLページのドロップダウン選択メニューを埋めようとしています。これまでのところ、次のことがわかりましたが、最後のハードルのどこが間違っているのかわかりません。私が理解していないことについての指針は、感謝しています。

function fileDropdown() {
    var options = "";
    $.getJSON(
        "json/files.json", 
        function(result) {
            //find the array and do seomthing
            $.each(result.Files, function(key, val) {
                options += '<option value="' + val.fileID + '">' + val.fileName + '</option>';
            });
        }
    );
    document.write("<select>"+options+"</select>");
}
4

3 に答える 3

1

ありがとう、今問題を解決しました。あなたに賛成票を投じますが、より多くの評判が必要です。

使った

$.each(result.Files, function(file) {
        selectElement.append($('<option value="' + this.fileID + '">' + this.fileName + '</option>'));
于 2012-11-24T22:37:43.523 に答える
1

これを試して:

function fileDropdown()
{

$.getJSON("json/files.json", function(result) {
//find the array and do seomthing
    var options = "";
    $.each(result.Files, function(key, val) {
        options += '<option value="' + val.fileID + '">' + val.fileName + '</option>';
    });
    var select = $('<select/>');
    select.append(options);
    $(document.body).append(select);
});
}
于 2012-11-22T13:56:40.240 に答える
0

$.getJSON("json/files.json", ...)window.location「取得し、追加json/files.jsonしてから、この URL で GET リクエストを送信する」ことを意味します。

これを修正するには、絶対file:URL を使用できます。ただし、ブラウザはおそらくセキュリティ上の理由からファイルの読み込みを拒否します。

別の方法として、Web サーバーが上記の URL を要求したときに、ブラウザーにファイルを送信するようにすることもできます。

于 2012-11-22T13:56:15.100 に答える