2016-04-21 174 views
1

您好我正在监听html对话框上的焦点事件,并尝试检查当前的焦点元素是否是我的“对话”类的一部分。请参阅下面的代码。Typescript error:属性'contains'在类型'Element'上不存在。

$(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对话框时不断按下标签页时,焦点不会从对话框移出到背景窗口。它保留在对话框中

回答

0

DOM元素没有包含方法,就像错误说的那样。我想你打算使用jQuery来代替。

改变这一行:

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

这样:

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

这是有帮助的。但是,如果我想将“.dialog table-storage-dialog”的所有孩子存储到一个数组中,我该怎么做? –

+0

结帐[.children](https://api.jquery.com/children/)。你可以这样使用它:'$(“。dialog,.table-storage-dialog”)。children();' – rgvassar

相关问题