【问题标题】:Typescript error :Property 'contains' does not exist on type 'Element'.?打字稿错误:“元素”类型上不存在属性“包含”。?
【发布时间】:2016-08-15 02:34:24
【问题描述】:

您好,我正在监听 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 键时,焦点不会离开对话框到背景窗口。它停留在对话框中

【问题讨论】:

    标签: javascript jquery html typescript


    【解决方案1】:

    一个 DOM 元素没有 contains 方法,就像错误所说的那样。我在想你打算改用 jQuery。

    改变这一行:

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

    到这里:

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

    【讨论】:

    • 这很有帮助。但是如果我想将“.dialog table-storage-dialog”的所有孩子存储到一个数组中,我该怎么做呢?
    • 结帐.children。你可以这样使用它:$(".dialog, .table-storage-dialog").children();
    猜你喜欢
    • 2017-08-07
    • 2017-03-26
    • 2016-05-17
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2018-11-30
    • 2017-03-02
    • 2021-09-07
    相关资源
    最近更新 更多