2016-03-18 16 views
0

Belli bir sınıfın tüm öğelerini toplamak ve bu öğeye bir şey eklemek için bir döngüye sahibim.Döngüdeki hemen çağrılan bir işleve nasıl geri arama yaparım?

var node; 
var nodes = document.getElementsByClassName('myclass'); 
for(var i = 1; i <= nodes.length; ++i) { 
    function() { 
    var element = document.creatElement('script'); 
    node = document.getElementById('my-node' + i); 
    node.parentNode.insertBefore(element, node); 
    })(); 
} 

Ben o node kimliği kullandığı için buna bir geri arama yapmak gerekir ama bu kodu çalıştırdığınızda sadece ben kimseyi arama bile dizinin son öğe üzerinde çalışan bazı kod var döngü için. Temel olarak ihtiyaç duyduğum şey, düğüm değişkeninin değerini tutmak ve her bir döngü boyunca bir geri çağırma işlevinde kullanmaktır.

Javascript'i doğru anlıyorsam, bu bir geri aramaya ihtiyacım var demektir, ancak hemen çağrılan bir işlev için nasıl yazılacağını bilmiyorum.

+1

http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example – Teemu

+1

Teemu, tam da ihtiyacım olan şey bu. ve soruyu sormak için daha iyi bir yol! – BrandenB171

cevap

1

ne istediğini tam olarak anlayamadım, ama değerini tutmak istiyorsanız kapatılması nedeniyle işleve geçmek gerekir:

var nodes = document.getElementsByClassName('myclass'); 
    for(i=1; i<=nodes.length; ++i){ 
    function(valueofI){ 
    var element = document.creatElement('script'); 
    node = document.getElementById('my-node'+valueofI); 
    node.parentNode.insertBefore(element, node); 
    })(i); 
} 

Ben ne ihtiyaç vardır umarım.

+0

Düğümün değerini gerçekten tutmalıyım ama bunun bir örnek olarak yeterince iyi olacağını düşünüyorum. – BrandenB171