我有一个textarea,我想在页面加载时展开/重新调整大小,以便它显示框中的所有文本。
但我的javascript并不是那么好。下面的代码段在我有" \ n"或" \ r"或者" \ r \ n",但如果我只是在框的末尾键入并且文本继续在下一行(换行)中,它就不能正确计算,所以这里有#s;没有\ r,\ n或\ r \ n。所以高度不能正确计算。
有谁知道更好的解决方案或如何解决这个问题?
function getTextAreaHeight(elementValue) {
var text = elementValue;
var lines = text.split(/\r|\r\n|\n/);
var count = lines.length;
var height = count * 30;
return height + 'px';
};
var height = getTextAreaHeight($("#profileCatchPhrase").val());
$('#profileCatchPhrase').css('height', height);

编辑 赢得了这项工作???
$('#profileCatchPhrase').css('height', $('#profileCatchPhrase').scrollHeight);

答案 0 :(得分:0)
这有一些有用的提示,如果你愿意使用jQuery +插件,或者你可以使用contenteditable
的div:
答案 1 :(得分:0)
首先应创建一个ghost文本框,然后将内容和样式复制到ghost文本框。然后,将ghost文本框的高度设置为0.然后,您可以通过scrollHeight
获取文本框内容高度。
以下是一个示例:https://jsfiddle.net/majvwvcm/6/