For lus vertalen naar JQuery.each

Status
Niet open voor verdere reacties.

ferentuske

Gebruiker
Lid geworden
5 okt 2013
Berichten
78
Beste

ik zit wat te oefenen met Jquery en zou mijn hele applicatie willen schrijven in JQuery.

Het probleem is ik zit vast bij het vertalen van mijn for lus naar Jquery lus iemand een idee ???

Code:
for (var i = 0; i < 100; i++) 
{
        document.write(i + 1);
        document.write("<br/>");
    }

en in jquery is het $.each(); maarja wat moet je ertussen invullen
 
Je wilt dus gegevens naar een bestand schrijven vanuit JQuery. Hier een voorbeeld:

Code:
function SchrijfBestand(data){
    var fso = new ActiveXObject("Scripting.FileSystemObject");
    var fh = fso.OpenTextFile("C:\\Bestand.txt", 8);
    fh.WriteLine(data);
    fh.Close(); 
}
 
Laatst bewerkt:
@edmoor: Ik denk niet dat dat gevraagd wordt ;)

jQuery is niets anders dan een bibliotheek met javascript-functies, je kunt tussendoor dus gewoon "vanilla" javascript gebruiken. Waarom zou je het dan aan willen passen?

Een bibliotheek zorgt voor een mate van vertraging aangezien er extra code uitgevoerd moet worden, dus waarom zou je jQuery gebruiken wanneer het ook met gewoon Javascript kan ;)
 
Ok. Ik had het idee dat het om de document.write ging :P
 
Waarschijnlijk wel ja maar document refereert naar het HTML-document oftewel de webpagina, niet naar het fysieke bestand :D
 
Ah! Ok, thanks :)
 
Ja het is gewoon om jquery wat onder de knie te krijgen.

Code:
<script>
    var teller = 0;
    $(document).ready(function () {
       
        $.each(autos, function (i, val) {
          
             
           document.write(autos[teller].Fabrikant);
           document.write("<br/>");
           document.write(autos[teller].Model);
           document.write("<br/>");
        
           document.write("----------------------------------------------------------------");
           document.write("<br/>");

           teller++;
        });

    });

</script>

Momenteel heb ik dit.

die autos is een array


Momenteel werkt deze code.

Wil dit even nog navragen of deze code goed is.
 
Teller heb je niet nodig omdat de variable i diezelfde waarde bevat :)

Je kunt zelfs val gebruiken wat dat is het huidige element uit de array ;)

Je kunt wel jQuery gebruiken om wat specifieker de positie van de elementen aan te geven. Nu worden ze standaard maar aan de body toegevoegd maar wil je dat wijzigen wordt het lastiger.

Je kunt via jQuery ook functies als een ketting laten uitvoeren

Dus mocht je een jQuery variant zoeken:
[js]
$(document).ready(function () {
$.each(autos, function (i, val) {
$("body")
.append(val.Fabrikant)
.append("<br/>")
.append(val.Model)
.append("<br/>")
.append("----------------------------------------------------------------")
.append("<br/>")
;
});
});[/js]
Uiteraard valt er bovenstaand script nog aardig te optimaliseren maar het is meer om je een idee te geven.
 
inderdaad bedankt was vergeten dat die functie dezelfde waarde had meegekregen.
en die append is ook veel beter want ik had het gevoel dat met die document.write de lus ergens blokeerde want in de zoekbalk bleef er verbinden staan.
en met append zie ik wel onmiddelijk mijn titel in mijn tabblad.

Alvast bedankt voor de hulp
 
Ik heb nog 1 vraagje

Ik heb dus ook nog een collectie van foto's gehangen aan mijn auto array.
Dus fotos is de naam van een 2de array.


Code:
autos[4].Fotos[0] = "Renault_Laguna_Coupe1.jpg";
autos[4].Fotos[1] = "Renault_Laguna_Coupe2.jpg";

Code:
<script>
    var teller = 0;
    var fototeller = 0;
    $(document).ready(function () {
       
        $.each(autos ,function(i,val) {
          
          
            $("body")
              .append(val.Fabrikant)
              .append("<br/>")
              .append(val.Model)
              .append("<br/>");
            $.each(val.Fotos,function(j,vax){
              
                
            
            });
            $("body")
              .append("----------------------------------------------------------------")
              .append("<br/>");
            
        });

        

    });

</script>
</head>
<body>
    <img id="vax()" />
</body>

dit werkt dus niet en met een append dan krijg ik enkel de plaats waar de afbeelding staat te zien.
Maar hoe krijg ik dan mijn afbeeldingen te zien in mijn body

alvast bedankt
 
Je moet dan natuurlijk wel een HTML-element laten genereren ;)

Dus het pad naar de afbeelding moet bekend zijn anders kun je hem niet tonen
[js]$.each(val.Fotos,function(j,vax) {
$("body").append('<img src="'+ vax +'" alt="'+ val.Fabrikant +' '+ val.Model +'">');
});[/js]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan