Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何记录不存在的元素_Javascript_Jquery_Html_Logging - Fatal编程技术网

Javascript 如何记录不存在的元素

Javascript 如何记录不存在的元素,javascript,jquery,html,logging,Javascript,Jquery,Html,Logging,该团队在web应用程序中做了大量修改。有些时候我发现jquery代码如下: $('#foo').doSomething(); 但是当我在HTML中搜索id=“foo”时,它已经不存在了 为了帮助我们并防止bug,我想console.log将每个不存在的元素转发到$()函数 以下是一个例子: //我想隐藏此文本。 $(#foo')。淡出(5000); //此id栏不存在。 $('#bar')。淡出(5000); //我想将console.log记录为#bar不存在 我不想隐藏这段文字。 我想

该团队在web应用程序中做了大量修改。有些时候我发现jquery代码如下:

$('#foo').doSomething();
但是当我在HTML中搜索
id=“foo”
时,它已经不存在了

为了帮助我们并防止bug,我想
console.log
将每个不存在的元素转发到
$()
函数

以下是一个例子:

//我想隐藏此文本。
$(#foo')。淡出(5000);
//此id栏不存在。
$('#bar')。淡出(5000);
//我想将console.log记录为#bar不存在

我不想隐藏这段文字。
我想隐藏这个文本。
该层命名为bbar而不是bar。

您也许可以像中那样重载$function

编辑(需要ES6
对象。分配
以复制属性,如
$。ajax
):


您需要重载
jQuery.fn.init
,因为它可以处理各种各样的情况,这不是一件小事。好主意…如果使用多个选择器,其中任何一个确实存在,但其他选择器不存在,则不起作用。我应该澄清并说它起作用,但如果找到了一个匹配项,但其他选择器不匹配,则不会记录任何内容。是的,如果需要,您可能必须重载
jQuery.fn.init
,正如@charlietfl所说的,这是一种有趣的方式。在我启动ajax调用之前,它一直有效。不幸的是,我使用的是$.getJSON。添加函数时,会抛出错误:
TypeError:$。getJSON不是函数
。我将使用
jQuery.fn.init
对其进行测试。我很快就会回来。啊,是的,jQuery对象上有更多属性,它不仅仅是一个函数:)。我忘了。如果可以使用ES6,请执行类似于
$=Object.assign(jQuery,$)的操作首次声明$后
$ = function(jQuery) { 
    return function(pars) { 
        var result = jQuery(pars);
        if (result.length==0) console.log('selector has no results',result.selector);
        return result;
    }
}($);
$ = Object.assign(function (jQuery) { 
  return function(pars) { 
    var result = jQuery(pars);
    if (result.length==0) console.log('selector has no results',pars);
    return result;
  }
}($),$);