jQuery で $.get() の外側の変数にアクセスしようとしていますが、それは起こっていません。
ここで、タイトルを定義している間、$.get() がそれを無視していることがわかります。$.get() 内でタイトルを定義すると、タイトルが未定義になります。
<script type="text/javascript">
var counter = 0;
var icon = '';
var title;
function paginate(limit) {
counter=counter+limit;
$(".flash").show();
$(".flash").fadeIn(400).html("Loading");
$.ajax({
url: "<?php echo config_item('base_url'); ?>notes/jq_get_notes_for_browser/" + '<?php echo $results['select_folder_for_browser'][0]['folder_id']; ?>/' + counter,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function (element) {
$(".flash").hide();
$(".load-link").addClass("link-none");
for (var i=0;i<element.length;i++) {
if (element[i].favourite == 'Y') {
icon = 'favourite';
} else {
icon = element[i].status;
}
$.get('<?php echo config_item('base_url'); ?>browser/jq_get_string_truncate_to_length/60/' + encodeURIComponent(element[i].title), function(data) {
title = decodeURIComponent(data);
});
$("#data-notes").append('<div class="browser-item-surround-note note-64" id="note-' + element[i].note_id + '"><div class="container"><a href="<?php echo config_item('base_url'); ?>notes/edit/' + element[i].note_id + '" title="Edit the ‘' + element[i].title + '’ Note"><img src="<?php echo config_item('base_url'); ?>library/images/ui/icons/browser/notes/note-' + icon + '.png" alt="note" width="64" height="64" /></a><p><a href="<?php echo config_item('base_url'); ?>notes/view/' + element[i].note_id + '" title="Created on ' + element[i].creation + '. Modified on ' + element[i].modification + '." class="browser-item-note">' + title + '</a></p></div></div>');
}
}
}
);
}
paginate(0);
</script>
$.get() 自体はデータを返していますが、後でアクセスすることはできません (コード サンプルの長い .append() の終わり近く)。
編集
for (var i=0;i<element.length;i++) {
var el = element[i];
$.get('<?php echo config_item('base_url'); ?>browser/jq_get_string_truncate_to_length/60/' + encodeURIComponent(element[i].title), function(data) {
$("#data-notes").append('< code >' + decodeURIComponent(data) + '< / code >');
});
}
明確にするために、Brad のアドバイスは原則として機能しますが、この問題のコンテキストでは機能しません。タイトルを除いて、すべてのメモは同じです。したがって、$.get() 内に .append() を配置することは、$.get() を強制的に for() で動作させる方法がない限り、明らかに解決策ではありません。