webForumDet fria alternativet

Object fungerar inte som en array i IE6 IE7

2 svar · 314 visningar · startad av standard sparty

standard spartyMedlem sedan sep. 201041 inlägg
#1

Hallå

I byggandet av min sida har jag använt mig av liknande:


function minFunction(ditt,datt){
...
kod
...
return arrayMedData;
}

var x=minFunction(ditt,datt);

for(i=0;i<x.length;i++){
alert(x[i]);
}

variabeln x har fungerat exakt som en array vilket jag därför antagit att det varit. När jag körde koden i IE7 så lärde jag mig att så inte var fallet utan att x är ett object (wtf!). Nu lyckas jag inte få fram arrayMedData från x överhuvud taget i IE6 ocg IE7.

Jag ägnade hela gårdagskvällen och en bra bit in i natten för att läsa på om objects men ärligt talat är det långt över min mentala kapacitet att förstå vad jag läser.

Så, kan jag få fram arrayMedData från x även i gamla versioner av explorer. I åttan fungerar det redan nu, så även i chrome safari opera firefox.

SPiNMedlem sedan mars 20007 896 inlägg
#2

Visa hur koden i funktionen 'minFunction' ser ut.

Det _går_ att iterera igenom ett objekt, på liknande sätt som arrayer (och det fungerar på arrayer också);

for (p in yourObject) {
    alert(yourObject[p]);
}
standard spartyMedlem sedan sep. 201041 inlägg
#3

Postar all kod jag tror kan vara relevant. H1-elementens class säger vilka artiklar(artikelnummer) som ska sorteras in under vilken H1-rubrik.

<h1 class="001070-001999 001020-001039">Rubrik</h1>
<h1 class="001000-001019">Rubrik</h1>
<h1 class="001040-001069">Rubrik</h1>
function sortProducts(){
	var x=document.getElementsByTagName('h1');
	for(var i=0;i<x.length;i++){
		var range=new extractClasses(x[i]);
		for(var ii=0;ii<range.length;ii++){
			var fromTo=range[ii].split('-');//fromTo[0]=from, fromTo[1]=to. Later from and to only
			var from=parseFloat(fromTo[0]);
			var to=parseFloat(fromTo[1]);
			moveProductBox(x[i],from,to);	
		}
	}
}

function extractClasses(targ){
//returns an array consisting of all the classes of the target element
	if(targ.attributes['class']){
		var elementClass=targ.getAttribute('class').split(' ');
		return elementClass;
	}
}
124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)