jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery断言支持/防御性编程?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是否有任何内置的jQuery支持基本的断言检查,主要是像“预期的返回元素数”。

例如我可能会有这样一个简单的语句:

$("#btnSignup").click(function() {
     return validateForm();
 );

现在有很多原因,为什么$(“#btnSignup”)可能不会完全返回1项:

>你错误地键入了按钮的id名称
有人把错误的名字重命名
>它不存在于页面
>有两个元素与该id的错误
>您正在使用ASP.NET MVC,您不小心使用HtmlHelper.button(…)生成了按钮的HTML代替HtmlHelper.Submit()。 Button(…)方法不会为按钮元素创建ID。

现在在这种情况下(和许多实例),我的应用程序根本不工作,除非从选择器返回一个项目。所以我总是想要被告知$(“@#btnSignup”)不会完全返回1个项目。那我该怎么办呢?我很好,如果这是一个例外或者最好是一个警报框 – 所以如果我没有运行在一个调试器,那么我可以被告知。

我正在寻找这样的语法,这与.NET的Single()扩展方法功能相似。

$("#btnSignup").assertSingle().click(function() {
     return validateForm();
 );

 or 

 $("#btnSignup").assertSize(1).click(function() {
     return validateForm();
 );

我个人认为这个代码总是很好运行,告诉谁在那里有一个问题。它显然不是performance issue运行这个额外的代码永远。在这种情况下,如果#btnSignup不存在,我的代码将被破坏。

我相信这个问题已经被打死了,有许多解决方案 – 但有人可以指出我们中的一些吗?

我没有看到任何内置的jQuery,并会想知道最好的插件是什么。我更希望在页面上有一些可以继续“看”我的东西,并告诉我,如果这是一个问题。我甚至不会反对错误报告服务进行的AJAX调用

@L_673_31@

它看起来不像内置的东西。但是写一个扩展名并不是太难了:
$.fn.assertSize = function(sizE) { 
  if (this.length != sizE) { 
    alert("Expected " + size + " elements,but got " + this.length + ".");
    // or whatever,maybe use console.log to be more unobtrusive
  }
  return this;
};

用法与您在问题中提出的一样。

$("#btnSignup").assertSize(1).click(function() {
  return validateForm();
);

请注意,在其当前形式中,即使断言失败,函数也会成功返回。你所链接的任何东西仍然被执行。使用return false;而不是返回这个;停止进一步执行链。

大佬总结

以上是大佬教程为你收集整理的jQuery断言支持/防御性编程?全部内容,希望文章能够帮你解决jQuery断言支持/防御性编程?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。