2010-03-26 4 views
1

Je suis coincé avec un petit problème ici .. Ce que je suis en train de faire est de copier la description des ID d'une table à l'autre. J'ai écrit la moitié du javascript et quelqu'un peut me dire comment convertir cette fonction en jquery. Je veux que la description copiée de la première table basée sur l'id à la deuxième table. L'ai fait dans jquery en utilisant 'contains', (Comparing 2 tables column values and copying the next column content to the second table) puisqu'il y a 1000 lignes de table, l'explorateur se bloque. Y at-il un moyen de le simplifier ?? ... le code est comme suit ...Copier des valeurs d'une table à une autre (comment convertir cette fonction js à jQuery)

le javascript courant fonctionne quand je clique sur le test dans la deuxième table, mais je veux que la valeur soit ajoutée dans la deuxième table la charge de la page ... pls aider

<table class="reportTabe"> 
<tr><td>psx-pdu120v1</td><td class="itemname" id="psx-pdu120v1">some description1</td></tr> 
<tr><td>psx-pdu120v1</td><td class="itemname" id="psx-pdu120v1">some description1</td></tr> 
<tr><td>psx-pdu120v3</td><td class="itemname" id="psx-pdu120v3">some description3</td></tr> 
<tr><td>psx-pdu120v4</td><td class="itemname" id="psx-pdu120v4">some description4</td></tr> 
<tr><td>psx-pdu120v5</td><td class="itemname" id="psx-pdu120v5">some description5</td></tr> 
<tr><td>psx-pdu120v6</td><td class="itemname" id="psx-pdu120v6">some description6</td></tr> 
<tr><td>psx-pdu120v7</td><td class="itemname" id="psx-pdu120v7">some description7</td></tr> 
<tr><td>psx-pdu120v8</td><td class="itemname" id="psx-pdu120v8">some description8</td></tr> 
<tr><td>psx-pdu120v9</td><td class="itemname" id="psx-pdu120v9">some description9</td></tr> 
</table> 

<table class="data"> 
<tr><td class="whipItem">psx-pdu120v1</td><td onClick="Javascript:alert(document.getElementById('psx-pdu120v1').innerText)";>test</td></tr> 
<tr><td class="whipItem">psx-pdu120v3</td><td onClick="Javascript:alert(document.getElementById('psx-pdu120v1').innerText)";>test</td></tr> 
<tr><td class="whipItem">psx-pdu120v4</td><td onClick="Javascript:alert(document.getElementById('psx-pdu120v5').innerText)";>test</td></tr> 
<tr><td class="whipItem">psx-pdu120v5</td><td Javascript:this.innerText=document.getElementById('psx-pdu120v4').innerText;></td></tr> 
<tr><td class="whipItem">psx-pdu120v6</td><td Javascript:this.innerText=document.getElementById('psx-pdu120v5').innerText;></td></tr> 
<tr><td class="whipItem">psx-pdu120v7</td><td Javascript:this.innerText=document.getElementById('psx-pdu120v6').innerText;></td></tr> 
<tr><td class="whipItem">psx-pdu120v8</td><td Javascript:this.innerText=document.getElementById('psx-pdu120v7').innerText;></td></tr> 
<tr><td class="whipItem">psx-pdu120v9</td><td Javascript:this.innerText=document.getElementById('psx-pdu120v8').innerText;></td></tr> 
</table> 

Répondre

0
$(document).ready(function() { 
     $('.whipItem', '.data').each(function(index, element) { //for each whipItem in the data table 
      var name = $(element).text(); //get the text value 
      var desc = $(".itemname[id='" + name + "']").text(); //get the description whose id matches the name in the report table. 
      $(element).next().text(desc); //change the value of the next td to the description. 
     }); 
    }); 
+0

@ Bradley Mountford merci bradley .. travaillé comme un charme .. maintenant je vais essayer d'implémenter dans la plus grande table et voir si ce script est lent ou non. Entre une chose que je trouve est, s'il y a deux cols avec "psx-pdu120v1" alors dans la deuxième table pour ce col, la description vient deux fois, quand j'ai ajouté html() ici var desc = $ (". itemname [id = '"+ nom +"'] "). html(); cela fonctionnait bien, mais aura un problème si la description contient et le symbole d'ambersand :-) – Sullan

+0

Content de pouvoir aider! Quant au second problème, changez $ (". Itemname [id = '" + name + "']"). Text(); à var desc = $ (". itemname [id = '" + name + "']: first"). text(); et cela devrait mettre fin à la question du doublage. –

0
$(function() { 

     $.each($('firstTable td'), function(i) { 
      var tableData = $(this); 
      $('.secondTable td').eq(i).text(tableData.text()); 
     }); 
    }); 
+0

@XGreen merci ... maintenant le script tente de copier complètement la valeur à la deuxième table, mais ce que j'ai besoin est que pour les noms présents dans la première colonne de la deuxième table, sa description adjacente doit être copiée de la première table, c'est-à-dire que 'psx-pdu120v3' dans le second tableau doit avoir les description (some description3) copié à partir de la première table – Sullan

Questions connexes