我正在尝试使用以下代码在数组中存储有关输入的信息,包括输入DOM对象本身。
export class SelectionOtherInputDescriptor {
constructor(public selectionName: string, public otherKey: any, public otherInputElement: HTMLInputElement) { }
}
export class SelectionOtherInputHelper {
selectionsWithOther: { [selectionKey: string]: SelectionOtherInputDescriptor; } = {};
getAllSelectionOthers() {
var things = $("[" + ATT_SELECTION_OTHER_FOR + "]");
for (var i = 0; i < things.length; i++) {
var selectionName = $(things[i]).attr(ATT_SELECTION_OTHER_FOR);
var desc = new SelectionOtherInputDescriptor(selectionName, 0, $(things[i]));
this.selectionsWithOther[selectionName] = desc;
};
};
}
在线
var desc = new SelectionOtherInputDescriptor(selectionName, 0, $(things[i]));
我收到编译错误:
类型'JQuery'缺少类型的属性
setSelectionRange
'HTMLInputElement'
为什么我自己的SelectionOtherInputDescriptor
对象要求HTMLInputElement
参数需要setSelectionRange
属性,而我只想将它存储在数组中的对象中。
答案 0 :(得分:1)
$(things[i])
返回一个JQuery对象,但是你的类想要一个HTML元素。观察:
<input id="foo">
....
var x = $('#foo');
console.log(x); // 'JQuery'
console.log(x.get(0)); '<input id="foo">
如图所示,您需要致电get
。由于这只是一个HTMLInputElement,您还需要键入 - 断言结果:<HTMLInputElement>($(things[i]).get(0))