Javascript 计数文本区域行,显示,增加,减少
我正在尝试使用纯javascript计算textarea行,我不确定为什么我的Javascript 计数文本区域行,显示,增加,减少,javascript,html,rows,Javascript,Html,Rows,我正在尝试使用纯javascript计算textarea行,我不确定为什么我的选择器。rows未返回正确的行数:( 这是我的js: var selector = document.querySelectorAll("textarea"); for(i = 0; i < selector.length; i++){ var array = selector[i]; var count = array.rows; console.log(array, count);
选择器。rows
未返回正确的行数:(
这是我的js:
var selector = document.querySelectorAll("textarea");
for(i = 0; i < selector.length; i++){
var array = selector[i];
var count = array.rows;
console.log(array, count);
if(count > 1 && count.scrollHeight < count.offsetHeight){
count--
console.log(array.rows);
}else{
count++
console.log(array.rows);
}
}
var选择器=document.querySelectorAll(“textarea”);
对于(i=0;i1&&count.scrollHeight
上面的代码工作正常,因为它被设计为返回
文本框
显示的行数(文本区域
的属性行
)。但是您需要文本区域
内的文本占用的行数,下面是一个解决方案:
高度
(我使用了getComputedStyle()
,因为高度没有定义)文本区域中内容的行高度(=高度/行)
文本区域的滚动高度
滚动高度
除以计算的行高度
来计算行数var选择器=document.querySelectorAll(“textarea”);
对于(i=0;i”;
}//结束于
知识产权是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德,是一种美德。
在《太阳报》中,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报,没有一本《太阳报》,没有一本《太阳报,没有一本《太阳报》,没有一本《太阳报,没有一本《太阳报》,没有一本《太阳报》,没有一本《太阳报。
你好
它在chrome中工作。@Grimbode Nope,不工作……是否要获取文本框的行数?或者文本框中的文本占用的行数?您的代码在第一个(至少)文本区域中运行良好(返回属性rows
的值)该代码中有一个错误:变量count
是一个数字,而不是一个对象/元素。您不能对其应用scrollHeight
或offsetHeight
,它将为这些值返回undefined
。这将使条件始终通过else
。您应该使用数组
变量:array.scrollHeight
和array.offsetHeight
很好。我找到了一个解决方案,并将其作为一个答案来写。我将简短地发布它。我添加了Math.round()
以消除上面代码中计算的不正确小数(JSFiddle示例没有它,并且没有它会得到一个整数)