I'm generating a list of articles like so: data.articles.each(function(article, ind){ var chLi = new Element('li').inject(rootUl); var chA = new Element('a',{'href':'javascript:;'}).inject(chLi);; var chLih = new Element('h4').set('html',vest.title).inject(chA);; var chLip = new Element('p').set('html',vest.desc).inject(chLi);;
chA.addEvent('click',function(){ var foo = new Request.JSONP({ url: 'http://phpscrape.plavevski.net/index.php?src=a1&t=2&dta=' + vest.link, onComplete: function(theData){ chLip.set('html',theData.vest.cont); } }); foo.send(); }) The idea is that when a article title is clicked, the P tag html is overwritten with the data fetched from the JSONP. This works on the first click. The new html is loaded, and the P tag html replaced. If you click any other title after that, the first P tag html is overwritten instead of the second. And so with any subsequent link clicked. See it in action here: http://jsfiddle.net/PegsX/2/ >From what i gather, i am refferencing the correct tag: onComplete: function(theData){ chLip.set('html',theData.vest.cont); } But on execution only one and the same element is referenced? What am i doing wrong?