いくつかのデータといくつかの HTML があり、合理的な方法でそれらをマージする必要があります。あなたは基本的にclient-side templatingをやっています。
基本的なアプローチの 1 つを次に示します。
$.get
必要な HTML を jQuery オブジェクトに変換するprocessBlock()
$.get
必要なデータgetDataFor($el)
- #1 を #2 の結果で更新する
renderBlock($el, data)
- 更新された HTML を DOM に挿入する
addToContent($el)
コード:
$.get("block.html", processBlock);
// create a documentFragment to fill in later
function processBlock(html) {
var $block = $(html);
getDataFor($block);
}
// get any needed data by querying for JSON
function getDataFor($el) {
$.getJSON("query.php", function(data) {
renderBlock($el, data);
});
}
// take the data and the element and
function renderBlock($el, data) {
$el.find("#color").text(data.color);
$el.find("#size").text(data.size);
addToContent($el);
}
function addToContent($el) {
$el.appendTo($("#content"));
}
非jqueryランドでは、documentFragmentと呼ばれるものを作成しています。これにより、ページに挿入する前に操作するDOMを少し作成できます。
より単純なフィドル バージョン:
http://jsfiddle.net/9kLzP/