Javascript 如何记录不存在的元素
该团队在web应用程序中做了大量修改。有些时候我发现jquery代码如下: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不存在 我不想隐藏这段文字。 我想
$('#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;
}
}($),$);