gpt4 book ai didi

javascript - 将光标放在html表格单元格中文本的末尾

转载 作者:太空狗 更新时间:2023-10-29 18:24:24 26 4
gpt4 key购买 nike

想要为每个 <td> 将光标焦点设置在文本的末尾

 <table #sampleTable>
<th>name</th>
<th>number</th>
<tr>
<td #name contenteditable="true">
jack
</td>
<td #number contenteditable="true">
5487
</td>
</tr>
</table>

组件.ts

@ViewChild('name') colName;
...
ngAfterViewInit(){
setTimeout(() => {
this.colName.nativeElement.focus() //setting focus at name column
}, 1000);
}

enter image description here

但无法将光标设置在文本末尾。任何人都可以在不使用 Jquery 的情况下以 angular 方式帮助我。

最佳答案

演示:https://stackblitz.com/edit/angular-svtdvv

将此答案合并到浏览器兼容性解决方案中: contenteditable, set caret at the end of the text (cross-browser)

  @ViewChild('name') colName;
ngAfterViewInit() {
this.placeCaretAtEnd(this.colName.nativeElement);
this.colName.nativeElement.focus();

}

placeCaretAtEnd(el) {
el.focus();
if (typeof window.getSelection != "undefined"
&& typeof document.createRange != "undefined") {
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
}
else if (typeof (<any>document.body).createTextRange != "undefined") {
var textRange = (<any>document.body).createTextRange();
textRange.moveToElementText(el);
textRange.collapse(false);
textRange.select();
}
}

关于javascript - 将光标放在html表格单元格中文本的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48298898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com