1

ページ内のハイパーリンクのリストを繰り返し処理し、ハイパーリンクされたすべてのページから html コンテンツを読み込み、現在のページの div に追加しようとしています。 .どうすれば望ましい結果を得ることができますか。

結果を達成しようとしているコードスニペットは次のとおりです。

$('th[scope="row"]').children("a").each(function(){
    var url = $(this).attr("href");
    var tempDiv = $('<div id=\"loadedDiv\"></div>').appendTo('.someClass');
    var fullUrl = url+' '+'.tabClass';
    $("#loadedDiv").load(fullUrl);
});
4

4 に答える 4

2

You should use class of loadedDiv not id as id's have to be unique.

In fact, a few tweaks to make the code quicker and more concise are

$('th[scope="row"]>a').each(function(){
    $('<div class=\"loadedDiv\"></div>').load(this.href + ' .tabClass').appendTo('.someClass');
});
于 2013-02-24T10:18:32.997 に答える
1
$('<div id=\"loadedDiv\"></div>') 

inside a .each loop is not a good idea.

you will get a few div with the same id.

difference between id and class

于 2013-02-24T10:18:53.033 に答える
1

各反復で同じid,で新しい要素を作成しています。属性は一意でなければならないloadedDivため、これは無効な HTMLです。idさらに、$("#loadedDiv")は常に同じ要素 (通常は最初に出現した要素) をフェッチし、同じ要素#loadedDivの内容を何度も書き換えることになりますdiv

idチェーンを使用してコンテンツを作成、追加、ロードする場合、新しく作成された要素に属性を割り当てる必要はありません。

$('th[scope="row"]').children("a").each(function(){
    var url = $(this).attr("href");
    var fullUrl = url + ' .tabClass';
    $('<div/>').appendTo('.someClass').load(fullUrl);
});
于 2013-02-24T10:31:54.737 に答える
0

load を使用しないでください。代わりに $.get を使用してください。

$.get(fullUrl, function(response) {

    $("#loadedDiv").append(response);

});
于 2013-02-24T10:15:48.290 に答える