Javascript 获取文本区域中的行号
可能重复:Javascript 获取文本区域中的行号,javascript,jquery,html,textarea,Javascript,Jquery,Html,Textarea,可能重复: 我想找出用户光标在HTMLtextarea元素中的行号 使用javascript和jquery可以做到这一点吗?您可以使用以下方法 n(索引) 查找从位置0到索引的子字符串 在步骤2中获得的子字符串中搜索新行数 //试验 $(function() { $('#test').keyup(function() { var pos = 0; if (this.selectionStart) { pos = this.sele
我想找出用户光标在HTML
textarea
元素中的行号
使用javascript和jquery可以做到这一点吗?您可以使用以下方法
$(function() {
$('#test').keyup(function() {
var pos = 0;
if (this.selectionStart) {
pos = this.selectionStart;
} else if (document.selection) {
this.focus();
var r = document.selection.createRange();
if (r == null) {
pos = 0;
} else {
var re = this.createTextRange(),
rc = re.duplicate();
re.moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart', re);
pos = rc.text.length;
}
}
$('#c').html(this.value.substr(0, pos).split("\n").length);
});
});
下面是一个工作示例
这可以分为三个步骤:
- /
- 在插入符号前面画线,然后数一数
我猜你不想考虑包装文本和滚动内容。假设您使用来自的函数,它将如下所示:
var el = document.getElementById("inputarea"); // or something
var pos = getCaret(el),
before = el.value.substr(0, pos),
lines = before.split(/\r?\n/);
return lines.length;
这适用于按钮单击。偷自 HTML
没有
犹太人区的爱情
来吧
明白了吗
在文本区域中定义行。它是否包含包文本或只想换行吗?我想在一行中设置15个字符限制,用户不能在5个LeSeNice问题中输入超过75个字符:)和书签;这并不能解释换行造成的换行。@RobW:我认为OP不需要它为我工作……它是helpfull@codingbiz:它太完美了…我只是复制并粘贴了它…它已经工作了…我在过去的一周里遇到了这个问题…但我现在发布了…谢谢你…@freelector庆祝你的幸运关于换行符?你是说换行符吗?是的,换行符是由换行引起的…除非你使用固定宽度的字体,否则很难检测到换行符是由换行引起的。
function getline()
{
var t = $("#t")[0];
alert(t.value.substr(0, t.selectionStart).split("\n").length);
}
<textarea rows="6" id="t">
there is no
love in the ghetto
so come here
and get it
</textarea>
<input type="button" onclick="getline()" value="get line" />