每当我们有:
$("something")
如果找不到带有该标签的元素,它不会在控制台中显示任何错误。有没有办法,显示错误/通知,如果它不能获得元素(如普通Javascript与getElementBy...
一起使用,当元素不存在时...)
编辑1 :
有些人说,这不是错误,只是“没有找到”..我不同意这种观点,因为那时所有的世界都应该报告他们犯错误的浏览器(谷歌,FF,Opera)。为什么?因为他们在控制台中做显示(并且他们做得很好!)找不到元素时(使用getElementBy..
)。我希望jQuery做同样的事情。如何启用该功能?
编辑2 :我不希望每次都进行手动检查($(element).length
或者等),我想启用ERROR调试器(不是条件编码等)..
编辑3 :我们如何报告jQuery,让我们能够定义ie jQuery_Enable_Notices = true;
(或者像这样的smth)变量,在这种情况下,jQuery函数显示控制台日志这样的错误?
答案 0 :(得分:2)
默认情况下,jQuery不是错误,它是一种想要的行为。
我唯一知道的方法是建立一个围绕jQuery构造函数的包装器。然后,只要选择器没有找到任何元素,您就可以自己打印错误。
但这确实是满足您需求的解决方法!我只会将其用于开发目的,而不是用于生产环境。请注意,这不适用于find
,children
,next
等子选择器,仅适用于基本构造。否则你必须包装所有这些。 ;)
$ = 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>
答案 1 :(得分:-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 */ }
答案 2 :(得分:-1)
试试这个:
if ($("#mydiv").length > 0){
// do something here
}
如果元素不存在,则返回零。