该属性在HTMLElement的值类型中不存在

时间:2015-11-12 06:29:40

标签: javascript durandal typescript1.6

在打字稿中我需要实现输入元素的特定 caretPosition 。但是当我尝试实现它时, HTMLElement <类型中不存在 createTextRange 类型/ strong>即可。 任何人都有解决方案?提前谢谢。

以下是我的代码

private setCaretPosition() {
    var el = document.getElementById("ticketInfo");
    if (el !== null) {
        if (el.createTextRange) {
            var range = el.createTextRange();
            range.move('character', el.value.length);
            range.select();
            return true;
        }
        else {
            if (el.selectionStart || el.selectionStart === 0) {
                el.focus();
                el.setSelectionRange(length, length);
                return true;
            }
            else { // fail city, fortunately this never happens (as far as I've tested) :)
                el.focus();
                return false;
            }
        }
    }
}

显示createTextRange()undefined

2 个答案:

答案 0 :(得分:10)

el变量投射到HTMLInputElement

UPD:

const input : HTMLInputElement = <HTMLInputElement>el;

答案 1 :(得分:0)

这很奇怪,因为我实际上没有在HTMLElement API中看到这个方法createTextRange

你在哪里得到这个方法,因为在API中根本没有这样的方法,也许你使用了一些外部的库。