これは私を夢中にさせており、何が問題の原因なのかわかりません。2 つの配列があります。1 つは pageID をリストし、もう 1 つはページをリストします。
次のコードを使用しようとすると、「ページ」は常に「フロント」を返します。変数 "var newObject" を宣言する前に for ループ中にアラートを設定すると、出力は正しく、ページには "front, insideLeft, insideRight and back" が表示されます。
他のすべての属性は正しく出力されます。
私のコードの下に見つけてください:
var pageID = ["cardFront","cardInsideL","cardInsideR","cardBack"];
var pages = ["front","insideLeft","insideRight","back"];
for (var i=0; i<pageID.length; i++) {
var cfTextarea = $('#' + pageID[i] + ' textarea'); //array of textareas
//Get each textarea properties and encode to json
$("#" + pageID[i] + " textarea").each(function(){
var txtOffset = $(this).offset();
var divOffset = $("#" + pageID[i]).offset();
var newObject = {
'page' : pages[i],
'id' : $(this).attr('id'),
'src' : $(this).attr('src'),
'width' : $(this).width(),
'height' : $(this).height(),
'top' : txtOffset.top - divOffset.top,
'left' : txtOffset.left - divOffset.left,
'rotation' : '0',
'colour' : $(this).css("color"),
'size' : $(this).css("font-size"),
'bold' : $(this).css("font-weight"),
'underline' : $(this).css("text-decoration"),
'align' : $(this).css("text-align"),
'font' : $(this).css("font-family"),
'text' : $(this).val()
};
data.textareas.push(newObject);
});
}