Typescript error:属性'contains'在类型'Element'上不存在。
问题描述:
您好我正在监听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对话框时不断按下标签页时,焦点不会从对话框移出到背景窗口。它保留在对话框中
答
DOM元素没有包含方法,就像错误说的那样。我想你打算使用jQuery来代替。
改变这一行:
var dialog = document.getElementsByClassName("dialog table-storage-dialog");
这样:
var dialog = $(".dialog, .table-storage-dialog");
这是有帮助的。但是,如果我想将“.dialog table-storage-dialog”的所有孩子存储到一个数组中,我该怎么做? –
结帐[.children](https://api.jquery.com/children/)。你可以这样使用它:'$(“。dialog,.table-storage-dialog”)。children();' – rgvassar