2016-08-24 49 views
0

每当我们有:jQuery的 - 启用“显示错误”,在控制台

$("something") 

它不显示在控制台中的任何错误,如果它不能找到与该标记元素。有没有一种方法,来显示错误/通知,如果它不能得到元素(如普通的JavaScript与getElementBy...,当元素犯规确实存在吧..)

编辑1: 有人说,这是不错误,它只是“未找到”..我不同意这个观点,因为那么所有的世界都应该向BROWSERS(谷歌,FF,Opera)报告他们犯了错误。为什么?因为他们在控制台中显示显示(并且他们做得很好!)当找不到元素时(使用getElementBy..)。我想让jQuery也做同样的事情。如何启用该功能?

编辑2:我不想手动检查每次($(element).length或等),我想启用错误调试(不是条件编码等)..

编辑3:怎么样,我们报道jQuery,使我们能够定义即jQuery_Enable_Notices = true;(或者像这样的smth)变量,并且在那种情况下,jQuery函数向控制台日志显示这样的错误?

+1

但是,这不是一个错误。它只是没有找到。你可以通过自己创建错误,比如if(!$(“something”).length)'。 – eisbehr

+1

只要你喜欢,你可以不同意。 ;)但是,我们应该高兴的是,当选择器没有发现任何东西时,jQuery不会抛出错误。这是非常想要的,因为你可以像你所了解的那样使用jQuery。如果在选择器没有返回元素时会出现错误,它将无法工作。通常情况下,您选择*祝您好运*,例如$(':checked')''的$('.active')',只要没有活动或选择的东西。 – eisbehr

+1

_“(就像普通的Javascript与getElementBy一样...,当元素不存在..)“_ - document.getElementById('foo')也不会抛出错误,如果找不到元素,它只会返回null。你的代码_follows_可能会抛出错误,当然,如果它试图访问属性或调用null方法之后。 – CBroe

回答

-1
if($('selector').length)   // use this if you are using id to check 
{ 
    // it exists 
} 

else 
{ 
console.log("not exist") 
} 

使用$('#selector').length它给你的长度,如果标签是存在的,否则其他情况来看

你也可以使用这样

// if element does not exist 

    if(!$('selector').length){ /* console here */ } 
+0

你误会了这个问题,再读一遍 –

+0

欢迎 你能解释一下吗 – Coder

+0

我不需要手动条件编程等等... –

-1

试试这个:

if ($("#mydiv").length > 0){ 
    // do something here 
} 

这如果元素不存在将返回零。

+0

你误解了这个问题,再读一遍。 –

2

默认情况下,对于jQuery而言,这不是一个错误,而是一种想要的行为。

我想知道的唯一方法是构建一个围绕jQuery构造函数的包装。然后,只要选择器未找到元素,您就可以自行打印错误。

但是,这真是一个解决方案,以满足您的需求!我只会将其用于开发目的而不是生产环境。请注意,这仅适用于基础构造,不适用于findchildrennext等子选择器。否则,你必须包装所有这些。 )

$ = function(selector, context) { 
 
    var elements = jQuery(selector, context); 
 

 
    if(!elements.length) { 
 
     console.log("element(s) by selector '" + selector + "' was not found"); 
 
    } 
 

 
    return elements; 
 
} 
 

 
$("div").text("test"); 
 
$("something").text("test");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div></div>