比较2个表列值并将下一列内容复制到第二个表

时间:2010-03-15 19:25:54

标签: jquery jquery-selectors

我在两个表之间比较第一列。如果找到匹配,我将文本从第一个表的相邻单元格复制到第二个表格。我能够比较字符串并获取值,但发现很难在第二个表中打印它。我在var“replaceText”中获取值,但是如何在第二个表中打印它?请帮忙......示例代码如下..

<script type="text/javascript">
    jQuery.noConflict();
    jQuery(document).ready(function(){

    jQuery('.itemname').each(function(){
    var itemName = jQuery(this).text();

        jQuery('.comparerow').each(function() {
        var compareRow = jQuery(this).text();

            if (itemName == compareRow) {
            var replaceText = jQuery(this).next('td').text();
            alert(replaceText);
            }

        });
    }); 
    });
</script>

HTML如下

<table width="100%"><thead>
<tr>
  <th align="left" >Name</th><th>Description</th></tr></thead>
<tbody>

<tr>
  <td class="comparerow">IX0001</td>
  <td class="desc">Desc 1 </td>
</tr>


<tr>
  <td class="comparerow">IX0002</td>
  <td class="desc" >Desc 2 </td>
</tr>

<tr>
  <td class="comparerow">IX0003</td>
  <td class="desc">Desc 3 </td>
</tr>
<tr>
  <td class="comparerow">IX0004</td>
  <td class="desc">Desc 4 </td>
</tr>
</tbody>
</table>

<br />

<table width="100%">
<tr>
<th>Name</th><th>Description</th>
</tr>
<tr >
<td class="itemname">IX0001</td><td></td>
</tr>
<tr>
<td class="itemname">IX0002</td><td></td>
</tr>
<tr>
<td class="itemname">IX0003</td><td></td>
</tr>
</table>

1 个答案:

答案 0 :(得分:0)

您可以使用:contains selector进行整体简化,以找到您的匹配项:

jQuery.noConflict();
jQuery(document).ready(function() {
  jQuery('.itemname').each(function() {
    var itemName = jQuery(this).text();
    var match = jQuery('.comparerow:contains("' + itemName + '")');
    if(match.length)
      jQuery(this).next('td').text(match.next('td').text());
  }); 
});

这会遍历每个项目,寻找匹配项。如果我们找到了匹配项(.legnth>&gt; 0),请将下一个<td>文本设置为匹配项的下一个<td>文本。