我正在尝试为我的方法编写一个jasmine测试用例,但我遇到了一个错误:
spec.ts(163,18):错误TS2345:类型的参数'()=> JQuery的'不能分配给'()=>类型的参数布尔&#39 ;.
你们能告诉我如何解决这个问题吗?提供我的代码和测试用例
$('.triggerKPopUpClick').click(function() {
if ($('#financialDocumentsGrid').data("kendoGrid")) {
$('#financialDocumentsGrid').data("kendoGrid").dataSource.data([])
}
that.ContractInfoPopUpWindow.data("kendoWindow").close();
$("html, body").css("overflow", "");
});
it('triggerKPopUpClick in head', function() {
$('.triggerKPopUpClick').trigger('click');
waitsFor(function() {
return $('financialDocumentsGrid').contains('financialDocumentsGrid');
}, 'theme switcher never loaded', 10000);
});
答案 0 :(得分:0)
.contains()
方法检查元素是否是另一个元素的后代。
语法为$.contains(parent, child)
。返回true
或false
。
检查选择器上的#
和.
......
<小时/> 的修改
以下是您的代码示例...
请注意,.contains()
参数所需的元素必须是DOM元素,而不是jQuery元素。这就是为什么有一些[0]
。
it('triggerKPopUpClick in head', function() {
$('.triggerKPopUpClick').trigger('click');
waitsFor(function() {
return $.contains('$(#financialDocumentsGrid)[0]', ' $(#AnotherElementWhichShouldBeAChild)[0]');
}, 'theme switcher never loaded', 10000);
});
以下是CodePen中的示例。
.contains()
“特殊”语法
你注意到DOM元素必须作为字符串发送到.contains
参数?
也许你对另一种选择感兴趣:
$("#parent").find("#child").length > 0
如果元素#child
中有一个元素#parent
,那么true
也是如此。