在文本缩短/延长时展开/折叠表格行

时间:2012-12-03 10:51:01

标签: javascript

例如,我有一个表格的3行。每个行都从数据库中获取其内容。默认情况下,折叠行时,应缩短文本 -

trs[i].innerText = trs[i].innerText.substring(0,25) + '...';

当用户点击div时,它会展开,如果再次点击则会折叠。

if(tr.style.height == "150px")
        {
             tr.style.height = "20px";
        }
    else {
        tr.style.height = "150px";
    }

到目前为止,这么好,但我希望只有在div崩溃时才缩短文本。使用我的解决方案,当页面加载时,文本被缩短,但当行被扩展时,它仍然缩短。我怎样才能解决这个问题?我只能想到当行扩展以调用返回原始数据的AJAX函数时,但我不认为这是最好的方法。提前谢谢。

1 个答案:

答案 0 :(得分:0)

首先,您必须在缩短之前存储全文。

trs[i].fullText = trs[i].innerText;
trs[i].innerText = trs[i].innerText.substring(0,25) + '...';

然后你可以在处理程序中恢复它:

tr.innerText = tr.fullText;
tr.style.height = "150px";

这是一个jsFiddle。我正在使用jQuery来选择元素,但无论如何你已经拥有了正确的tr。如果您使用的是jQuery,您还可以使用$(tr).data("fullText", $(tr).text()),这可以避免在旧版Internet Explorer中向DOM元素添加属性时出现一些轻微的内存泄漏。