2

私がやろうとしているのは、何百ものファイルのリストを配列に保存し、jquery load() 関数を使用して、ループによってコンテンツを 1 つずつロードすることです。

私はjqueryとjavascriptの知識がほとんどありません.これは私が書いたものですが、うまくいきません.

var files=['index1c.html','index23c.html'];

for(var index = 0; index < files.length; index++){
    var file = files[index];

$('#result').load('file .desc');
}

で指定された変数ファイルに問題があると思いますがload()、正しい方法ですか? file以下のような場所に単一のファイル名を直接書き込むと、正常に機能します。

$('#result').load('index1c.html .desc');
4

3 に答える 3

3

変化する:

$('#result').load('file .desc');

に:

$('#result').load(file + ' .desc');

load メソッドは、新しいコンテンツを追加する前に要素のコンテンツを削除することに注意してください。result1result2... などの一意の ID とコードを作成できます。

for(var index = 0; index < files.length; index++){
    var file = files[index];
    $('#result' + (index + 1) ).load(file + ' .desc');
}

eqまたは、クラスとメソッドを使用できます。

var $results = $('.results')
for(var index = 0; index < files.length; index++){
    var file = files[index];
    $results.eq(index).load(file + ' .desc');
}

または、追加したい場合は、メソッドの代わりにユーティリティ関数をdata使用できます。$.getload

于 2012-12-25T08:20:47.577 に答える
2

使ってみてjQuery.ajaxSetup({async:false});

{async:false}残りのコードの実行を保留します。ajax コードの応答を取得すると、残りのコードが実行されます。ajax応答を実行した後、asynctrueにリセットjQuery.ajaxSetup({async:true});

したがって、最終的なコードは

var files=['index1c.html','index23c.html'];

for(var index = 0; index < files.length; index++){
    var file = files[index];
    jQuery.ajaxSetup({async:false});
    $('#result').load('file .desc');
    jQuery.ajaxSetup({async:true})
}
于 2015-02-04T12:25:42.920 に答える
2

リテラル string を使用しています'file .desc'

ご希望のようですfile + '.desc'

'a b'は文字列a bですa + ' b'が、 は変数 a の内容が文字列に追加された文字列' b'です。

于 2012-12-25T08:20:55.273 に答える