jquery - 在 TypeScript 中使用 jQuery $ 前缀

标签 jquery typescript

我正在尝试将我的 html 输入控件转换为 typescript 中的 HTMLInputElement。尝试通过普通的速记 jQuery 方法访问输入控件,

e.g. <HTMLInputElement> $("#CompareToControl")

导致出现波浪形红线错误“JQuery 类型和 HTMLInputElement 类型均不可相互分配。

有什么方法可以让它工作,或者我们被迫使用旧的普通方式来引用控件,例如

 <HTMLInputElement> document.getElementById("CompareToControl");

最佳答案

这是因为 $(expn) 不返回 DOM 元素,而是返回 JQuery 对象,并且它们不可相互分配。因此,您需要从 jquery 对象获取 HTMLInputElement 类型的 DOM 元素。即

<HTMLInputElement> $("#CompareToControl")[0]

您正在使用的 $(expn) 的类型声明如下。 ($ 的类型为 JQueryStatic)

interface JQueryStatic {
     /**
     * Accepts a string containing a CSS selector which is then used to match a set of elements.
     *
     * @param selector A string containing a selector expression
     * @param context A DOM Element, Document, or jQuery to use as context
     */
    (selector: string, context?: JQuery): JQuery;
}

关于jquery - 在 TypeScript 中使用 jQuery $ 前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31267592/

相关文章:

javascript - 如何在日期之前/之前禁用/启用输入元素?

javascript - Opera 和 ie 缓存 <p class ="hide">,所以 javascript 不起作用

php - 尝试在 json 数组中搜索

javascript - 使用 Ionic 3 从 JSON 数据筛选器的搜索栏

requirejs - typescript - 250 .ts 文件 - require(),//引用、模块等

TypeScript 编译器评估 let 与 const 不同

javascript - 在 YouTube iframe 的 'removeChild ' 上 react 'Node'

javascript - jQuery 中没有触发按钮单击事件?

javascript - 编写可调用对象的 typescript

javascript - jquery ajax 调用出现问题,成功函数行为不正常