0

我正在尝试创建一个表格,当单击其中一个单元格时,它将其文本内容替换为一个已存储的值,并且当第二次单击另一个单元格时,可能会更改前一次单击的单击单元格文本。

我成功完成了第一次迭代,但对于第二次迭代,我不知道为什么删除的单元格的值存储为 null。这是我尝试过的:

html:

<table>
    <tr id="l1">
        <td><span>opA</span></td>
    </tr>
    <tr id="l2">
        <td><span>OpB</span></td>
    </tr>
    <tr id="l3">
        <td><span>OpC</span></td>
    </tr>               
    <tr id="l4">
        <td><span>OpD</span></td>
    </tr>
</table>

jQuery:

   var removed="firstchange";
     var removed2;
$("#l1, #l2, #l3, #l4").click(function() {
    if($(this).attr("id")=="l1"){
        removed2=$('#l1').find("span").text();
        $('#l1').find("span").replaceWith(removed);
        removed=removed2;
    }else if($(this).attr("id")=="l2"){
        removed2=$('#l2').find("span").text();
        $('#l2').find("span").replaceWith(removed);
        removed=removed2;
    }else if($(this).attr("id")=="l3"){
        removed2=$('#l3').find("span").text();
        $('#l3').find("span").replaceWith(removed);
        removed=removed2;
    }else if($(this).attr("id")=="l4"){
        removed2=$('#l4').find("span").text();
        $('#l4').find("span").replaceWith(removed);
        removed=removed2;
    }   
});
4

1 回答 1

0

您的解决方案不起作用,因为replaceWith函数将代码中的 span 元素替换为提供的文本。尝试更通用的解决方案,只更改 span 内的文本而不替换 span 元素。

var removed="firstchange", 
    removed2;
$("table").on('click','tr',function() {
    var current = $(this).find('span');
    removed2 = current.text();
    current.text(removed);
    removed = removed2;
});
于 2013-11-06T14:08:02.940 回答