javascript - typescript 错误 :Property 'contains' does not exist on type 'Element' . ?

标签 javascript jquery html typescript

您好,我正在监听 html 对话框的焦点事件,并尝试检查当前焦点元素是否是我的“对话框”类的一部分。请参阅下面的代码。

$(document).ready(() => {
    document.addEventListener("focus", (event) => {
        var dialog = document.getElementsByClassName("dialog table-storage-dialog");
        var dialogOpen: boolean = true;
        var currentElement: any = event.target;
        if (dialogOpen && !dialog[0].contains(a)) {
            event.stopPropagation();
             $("#dialog table-storage-dialog").focus();
        }
    }, true);
});

但是这段代码抛出编译错误“属性‘包含’在类型‘元素’上不存在”。知道这段代码有什么问题吗?

此代码确保当您在 html 对话框打开时按住 Tab 键时,焦点不会离开对话框到背景窗口。它留在对话框中

最佳答案

DOM 元素没有 contains 方法,正如错误所说。我认为您打算改用 jQuery。

改变这一行:

var dialog = document.getElementsByClassName("dialog table-storage-dialog");

为此:

var dialog = $(".dialog, .table-storage-dialog");

关于javascript - typescript 错误 :Property 'contains' does not exist on type 'Element' . ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777266/

相关文章:

javascript - 如何根据对象内的某些匹配项插入特定值

javascript - Typescript 中类型为 'someProp' 的值不存在属性 'object'

javascript - 将一组重叠的时间段合并到新的时间段中

javascript - 添加的新行无法编辑

jquery - 关于使用 jQuery 操作视频 HTML5 视频的几个问题

javascript - jQuery 脚本不会运行

html - 为什么文本没有对齐到顶部?

javascript - 运行变量是 NaN,但调试变量不是 NaN。为什么?

php 表单使用 POST 在输入值字段中发送数组

与缩放相关的 HTML5 图片标签问题