Problema adaugare date cu each function in jQuery

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
Bizzar
Mesaje: 49

Problema adaugare date cu each function in jQuery

Salut MarPlo.

Deci, intr-un forum, am mai multe clase de acelasi fel (adica se repeta intro pagina). Eu as vrea sa mut niste texte, si am incercat asa:

Cod: Selectaţi tot

$('.borderwrap .ipbtable.index-box tbody tr').ready(function(){
    $('td.row1.centered').addClass('ib_subiecte').wrapInner('<div class="ib_stats_subiecte" />');
    $('td.row2.centered').addClass('ib_mesaje').wrapInner('<div class="ib_stats_mesaje" />');
});

$('.borderwrap .ipbtable.index-box tbody tr').each(function() {
    $('.ib_stats_subiecte').insertAfter($('.ib_stats_mesaje'));
});
Imagine: URL: /i.imgur.com/wfDAt.png

Insa cu daca folosesc each nu functioneaza, cand incerc ready se muta de fiecare data toate clasele de pe forum cu: ib_stats_subiecte la .ib_stats_mesaje.. Nici nu stiu cum sa spun.. :D
URL: i.imgur.com/2XKSq.png

Apropo, am pus intentionat:

Cod: Selectaţi tot

.borderwrap .ipbtable.index-box tbody tr
pentru ca sa se mute in pe fiecare rand in parte, adica ca sa nu sa se repete de 1000 de ori ca in imaginea de mai sus..

Multumesc.

MarPlo Mesaje: 4343
Salut
Problema cred ca este la linia cu insertAfter() din codul tau.
Dupa definitie, sintaxa de aplicare e asa:

newElm.insertAfter(tinta) - adauga newElm in pagina, dupa elementul tinta

La tine este:
$('.ib_stats_subiecte').insertAfter($('.ib_stats_mesaje'));
- Unde prima parte nu e un obiect cu datele ce trebuie adaugate, ci un array cu obiecte HTML.

Prima parte ar trebui sa fie obiectul simplu cu ceea ce vrei sa adaugi.
Un exemplu:

Cod: Selectaţi tot

var new_span = $('<span>START</span>').addClass('spn');      // creare <span> cu class="spn"
new_span.insertAfter('.clasa');        // adauga noul <span> dupa tag-urile cu class="clasa"
- Nu stiu cum ar fi rezolvarea la tine, probabil ar merge mai bine cu functia after() , daca stii cum sa o aplici.
Exemplu:

Cod: Selectaţi tot

// adauga "Continut nou" in pagina, dupa "selector"
$('selector').after('<tag>Continut nou</tag>');

Bizzar Mesaje: 49
De fapt, ceea ce vreau eu sa fac e sa mut un element in altul. Adica, sa mut 'Subiectele' la 'Mesaje', dupa care voi sterge coloana goala si voi edita titlul din 'Subiecte' in 'Statistici'. Dar asta voi face singur ca ma pricep, am cerut ajutor la mutarea numarului de subiecte langa numarul de replici (deci, se vor afla ambele in aceeasi celula a tabelului)...

Sa te lamuresc putin despre codurile de mai sus. Deci, cu prima parte a codului:

Cod: Selectaţi tot

$('.borderwrap .ipbtable.index-box tbody tr').ready(function(){
    $('td.row1.centered').addClass('ib_subiecte').wrapInner('<div class="ib_stats_subiecte" />');
    $('td.row2.centered').addClass('ib_mesaje').wrapInner('<div class="ib_stats_mesaje" />');
});
NU am absolut nici o problema! Uita de acest cod..

Problema e strict in each ala (din a 2a parte a codului). Vreau sa folosesc each pentru a se aplica functia la fiecare tr in parte, pentru ca daca folosesc ready rezultatul va fi ca in a 2a imagine:
i.imgur.com/2XKSq.png :(

Multumesc...

MarPlo Mesaje: 4343
Problema pare cam complicata, ma depaseste, ma pricep mai mullt la lucruri simple.
Poate altcineva mai priceput, cu experienta in jQuery, va stie vreo solutie.

Subiecte similare