2017-10-17 3 views
1

jquery getメソッドを使用して、オブジェクトを含む3つの異なるjsonファイルを取得して1つのページにロードしようとしています。私は、オブジェクトをつかんで、jqueryを使って3つすべてをページに表示する必要があります。私は3つすべてのロードと表示に問題があります...どんな助けもありがとうございます。ありがとう!複数のjsonファイルをロードし、ajaxとjqueryを使用してhtmlに表示します。

$(document).ready(function(){ 
$("button").click(function(){ 
    $.get("objectone.json", function(data){ 
     $('#mydiv').html((JSON.stringify(data))); 
    }); 
    $.get("objectwo.json", function(data){ 
     $('#mydiv').html((JSON.stringify(data))); 
    }); 
    $.get("objectthree.json", function(data){ 
     $('#mydiv').html((JSON.stringify(data))); 
    }); 
    }); 
}); 

とHTML::

<button type="button" name="button">Click Me</button> 

<div id="mydiv"> 

</div> 

答えて

2

代わりの.html()方法の使用はJQueryの.append()ここ

はコードです。

あなたは.append()と、それは exisitingコンテンツに追加されます一方、それは、あなたがそれを呼び出すたびに新しいコンテンツとの以前の内容 を置き換えます.html()を使用しているので。

続きを読むhere

$(document).ready(function() { 
 
    var url = "https://rawgit.com/typicode/json-server/master/routes.json"; 
 
    $("button").click(function() { 
 
    $.get(url, function(data) { 
 
     $('#mydiv').append((JSON.stringify(data))); 
 
    }); 
 
    $.get(url, function(data) { 
 
     $('#mydiv').append((JSON.stringify(data))); 
 
    }); 
 
    $.get(url, function(data) { 
 
     $('#mydiv').append((JSON.stringify(data))); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button type="button" name="button">Click Me</button> 
 

 
<div id="mydiv"> 
 

 
</div>

+0

ありがとうございました! –

+0

@MujoMよろしくお願いします! –

2

.htmlの方法は、あなたが提供するHTMLコンテンツと、選択した要素のすべての内容を置き換えます。 同じ要素に3回使用すると、すべての内容が3回置き換えられます。

.htmlを.appendに置き換えます。これは、選択した要素の内容の最後に新しいデータを追加します。

+0

Gotcha! 3つのオブジェクトがすべてページに表示されると、機能が停止することはありますか?ボタンをクリックしてその機能を実行するたびに、同じオブジェクトの別のセットが表示されるためです。とにかくこれを起こさないようにするには? –

+0

@MujoMボタンを削除するか、ボタンが機能しなくなることがあります。 削除するには:$( "button")。remove(); $( "button")。unbind( 'click')。 "クリック"コールバック(最後の1行の前に1行)の最後に上記のいずれかを追加してください。 – DreamWave

+0

@MujoMまた、要素にクラスを追加して、それが満たされたことを示すこともできます。コールバック関数の最後に:$( "mydiv")。addClass( 'filled');最初の広告でif(!$( "mydiv")。hasClass( 'filled'){ここのコードの残りの部分} – DreamWave

関連する問題