例如,我有一个表格的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函数时,但我不认为这是最好的方法。提前谢谢。
答案 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元素添加属性时出现一些轻微的内存泄漏。