0.解决的问题

a.当选择器语法没有问题,找不到元素时,让jquery报错

b.选择器语法有问题,程序无法继续执行时,让jquery报错

主要针对传递字符串,尝试前请备份jquery库,最好改变名字加已区分.

1.环境配置

jquery-3.0.0.js未压缩版

2.选择器语法没有问题,找不到元素

修改jquery源码增加代码,以下是修改后的代码,加红的是增加部分

  1. var
  2. version = "3.0.0",
  3.  
  4. // Define a local copy of jQuery
  5. jQuery = function( selector, context ) {
  6.  
  7. // The jQuery object is actually just the init constructor 'enhanced'
  8. // Need init if jQuery is called (just allow error to be thrown if not included)
  9. if(typeof window["[]"] == "undefined")
  10. {
  11. window["[]"] = [];
  12. window["[]"]["selector"] = selector;
  13. window["[]"]["current"] = 0;
  14.  
  15. }
  16. else
  17. {
  18. window["[]"]["current"] ++;
  19. }
  20. var c = new jQuery.fn.init( selector, context )
  21. if(window["[]"]["current"]-- == 0)
  22. {
  23.  
  24. if(c.length == 0)
  25. {
  26.  
  27. window.console.error(window["[]"]["selector"] +"找不到");
  28. }
  29. delete window["[]"];
  30. }
  31. return c;
  32. },

3.选择器语法有问题,导致程序无法继续执行

代码举例

$(function()

{

  var lol = $("li:");
  alert(lol.length);
});


在上个问题增加的代码的基础上,向jquery源码增加代码,以下是修改后的代码,红色是增加部分

  1.  
  1. process = special ?
  2. mightThrow :
  3. function() {
  4. try {
  5. mightThrow();
  6. } catch ( e ) {
  7.  
  8. if ( jQuery.Deferred.exceptionHook ) {
  9. jQuery.Deferred.exceptionHook( e,
  10. process.stackTrace );
  11. }
  12.  
  13. // Support: Promises/A+ section 2.3.3.3.4.1
  14. // https://promisesaplus.com/#point-61
  15. // Ignore post-resolution exceptions
  16. if ( depth + 1 >= maxDepth ) {
  17.  
  18. // Only substitute handlers pass on context
  19. // and multiple values (non-spec behavior)
  20. if ( handler !== Thrower ) {
  21. that = undefined;
  22. args = [ e ];
  23. }
  24.  
  25. deferred.rejectWith( that, args );
  26. }
  27. if(typeof window["[]"]!="undefined")
  28. {
  29.  
  30. if(window["[]"]["current"] == 0)
  31. {
  32. window.console.error(window["[]"]["selector"]+"使程序无法向下执行");
  33. }
  34. }
  35. }
  36.  
  37. };
  1. 至于程序无法向下执行的原因,我也无法给出肯定的回答,JavaScript的函数调用总是会返回内容,我使用debug工具查找时,走到这个函数的末尾就不走了,怎么说呢,有缘再会吧!
    找到原因了var lol = $("li:");报错了,导致程序的终止
    try
    {
      
  1.   var lol = $("li:");

  1. }
    catch(e)
    {
      alert(e);
    }
  1.  
 

如何让JQuery报错-遁地龙卷风的更多相关文章

  1. Jquery报错:Uncaught TypeError: ((m.event.special[e.origType] || (intermediate value)).handle || e.handler).apply is not a function

    页面中出现了Jquery报错:Uncaught TypeError: ((m.event.special[e.origType] || (intermediate value)).handle || ...

  2. jQuery报错:

    jQuery报错:Uncaught ReferenceError: $ is not defined 在使用jQuery的时候,发现有如下报错: Uncaught ReferenceError: $ ...

  3. vs中正常IIS发布网站后css样式、图片丢失jQuery报错 $ is not defined

    问题描述: VS运行能够正常看到样式和图片 ,IIS发布后样式丢失.图片不显示.并且jQuery报错“$ is not defined”. 问题分析: 1.首先怀疑是样式文件.图片等发布的时候没有发布 ...

  4. jquery 报错 $.cookie is not a function()

    jquery 报错 $.cookie is not a function() ——我是之前可以运行的项目,突然报这个错误,很奇怪. 这是jquery的cookie插件报错. 插件名: jquery.c ...

  5. Eclipse中Jquery报错

    在网上看到很多 jQuery-xxx.js 在eclipse中报错的解决方案大多是说 项目右键 Properties->Validation->JSP Content Validator ...

  6. jQuery报错:Uncaught ReferenceError: $ is not defined

    在使用jQuery的时候,发现有如下报错: Uncaught ReferenceError: $ is not defined  (anonymous function) 出现这个报错的原因: 1.j ...

  7. jQuery 报错,对象不支持tolowercase属性或方法

    泪流满面.<input>里id和name都不能是nodeName,否则跟jquery.js冲突 JQuery 实践问题 - toLowerCase 错误 在应用JQuery+easyui开 ...

  8. js、jquery报错

    js.jquery一直报错,是myecplise的问题, 右键项目->属性->builder->js validate去掉单个文件出错 右击文件->myecplise-> ...

  9. ie9/8的iframe中jQuery报错

    此文章用于对工作中遇到的问题进行记录 jQuery 版本:1.9.1 按照一般的思路,jquery 1.x的是支持ie9及以下的,但是今天发现jquery报错了,代码错误位置在源码版本的第4888行 ...

随机推荐

  1. JS-DOM2级封装练习题--点击登录弹出登录对话框

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. 生成秘钥文件 sn.exe(Strong Name Tool)

    Visual Studio 内置 Strong Name Tool, 我们直接运行"VS开发人员命令提示"就可以生成秘钥文件. 秘钥文件包含公钥和私钥. 来看这个例子: 在文件夹下 ...

  3. logback 详解

    原创文章,转载请指明出处:http://aub.iteye.com/blog/1103685, 尊重他人即尊重自己 详细整理了logback常用配置, 不是官网手册的翻译版,而是使用总结,旨在更快更透 ...

  4. PHPCMSv9首页显示分页点击下一页跳转链接出现错误,跳转到后台的解决方案

    1 引用页写为 {pc:content action="lists" catid="10" order="updatetime DESC" ...

  5. squid代理服务器配置详解

    root@proxy squid]# cat squid.conf## Recommended minimum configuration:#visible_hostname www.jd.com # ...

  6. Xcode如何编译Debug版和Release版

    在Run和Stop按钮的右边有一个工程名 点击工程名,选择Manage Schemes 选择Edit... 左侧选择Run ProjectName.app 右侧选择Info页,在Build Confi ...

  7. Xcode打印frame id

    开启 打开终端输入三条命令: . touch ~/.lldbinit . echo display @import UIKit >> ~/.lldbinit . echo target s ...

  8. 上下联动,右侧按钮过多poper展示

    http://pan.baidu.com/s/1dDFMLjF

  9. php常用时间戳记录

    <?php echo '<br/>'; //php获取今日开始时间戳和结束时间戳 echo "今天"; echo '<br/>'; $beginTod ...

  10. URL中“#” “?” &“”号的作用

    URL中"#" "?" &""号的作用   阅读目录 1. # 2. ? 3. & 回到顶部 1. # 10年9月,twit ...