Zusammenfassung:
Ich habe einen Code, die Worte aus einer Datenbank nimmt, ist es alles in einer Box setzt die 3 x 3 Textfelder hat (Sie können auch stattdessen erweitern von 3 Kisten, die ich bestätigt habe gearbeitet).
In den Feldern nimmt es die Höhe der Wörter und setzt diese Höhe auf die Höhe des div, der die Wörter enthält, und platziert diese Höhe innerhalb eines Arrays. Wenn ein div nicht vorhanden ist (kein Text), wird 0 gesetzt.
Jedes mal wenn es das tut, was 1 Reihe ist, wird es die Höhe der drei in der Reihe überprüfen, und das div über ihnen als setzen die größte Höhe, etwa so:Warum ist eine größere Variable weniger als eine kleinere Variable
var tempN = 0; //Holds each number temporarily
var temp = []; //Holds all 9 box heights
for (var i = 0; i < Panels.length; i++) { //There are 9 panels
temp[i] = new Array(); //adding to array
if (document.getElementById('Column'+i+Id[Ten])!=null) {//Id[Ten] will be 3, 2, and 1, in a for loop
document.getElementById('Column'+i+Id[Ten]).style.height = document.getElementById('Text'+i+Id[Ten]).clientHeight+"px";
temp[i].push(document.getElementById('Column'+i+Id[Ten]).clientHeight); //puts number on table
} else {
temp[i].push(0); //since there is no panel, the height would be 0
}
if (i%3 == 2) { //every 3rd time
for (var x=2;x >= 0;x--) { //also could do (var x=0;x<3;x++)
alert(temp[i-x]+" is greater than "+tempN); //tells me what should work
if (tempN < temp[i-x]) { //also could do the other way around
tempN = temp[i-x]; //tempN will be the current biggest height
alert(tempN+' '+temp[i-x]); //just a show it went through if
document.getElementById('Row'+BoxRow+Id[Ten]).style.height = tempN + "px";
}
}
tempN = 0; //reset tempN for next 3 boxes
}
}
temp = []; //reset temp for next box
Nun wird die Art und Weise meiner Seite ist, wird Temp sein:
temp = [0,158,0,0,158,0,0,50,0] when Id[Ten] is 3
temp = [0,50,0,0,0,0,0,0,0] when Id[Ten] is 2
temp = [284,50,50,50,50,50] when Id[Ten] is 1
das Problem:
wenn der Code Id bekommt [Ten] ist 1, Es beginnt mit der Aussage:
"284 ist größer als 0"
, die geplant ist, dann erhalte ich:
"284 284"
die auch geplant ist, dann:
"50 größer als 284"
Hier ist das Problem: was kam danach das ist, was sollte übersprungen werden:
"50 50"
Das sagt mir, dass die if-Anweisung, die ich True überschritten habe, sah es 284 < 50. Ich habe Mathe mindestens mehr als einmal in meinem Leben getan, und Ich weiß, dass 284 eine größere Zahl als 50 ist. Aus diesem Grund hat meine Box eine geringere Höhe als der darin enthaltene Text und sie überschneiden sich auf eine Weise, die hässlicher ist als ich. Ich bin mir sicher, dass mein Code und ich eine Art Midlife-Crisis haben und wäre großartig, wenn mir jemand erklären könnte, warum mein Code diese rebellische Phase durchläuft.
'50 <284' aber "50"> "284" '(genau wie' "be"> "ape" ') – apsillers
Beim Vergleichen von Zeichenfolgen, die nur Buchstaben enthalten, würden Sie nicht überrascht sein, dass" Zoo ">" A pple ". Die gleichen "alphabetischen" Regeln gelten für Strings, die Zahlen enthalten. – Jecoms