在jQuery中,我编写了一段代码,显示在我网站的每一页上。
var d = $('#someElement').offset().top;
但是,并非我网站上的每个页面都有一个ID为" someElement"的元素。不幸的是,在缺少这种元素的这些页面上,没有jQuery代码可以工作。
为了解决这个问题,我想测试页面上的元素是否确实具有" someElement"然后只运行上面的代码片段。
我该如何进行此测试?这个测试会解决这个问题吗?谢谢。
答案 0 :(得分:8)
$('#someElement').length
将返回1
,否则将返回0
。
答案 1 :(得分:3)
检查jQuery对象的长度。
var element = $('#someElement');
if (element.length) {
var element_top = element.offset().top;
}
答案 2 :(得分:1)
使用if语句:if ($('#someElement').length) { do something }
答案 3 :(得分:1)
试试这个:
if($('#someElement').length>0){
var d = $('#someElement').offset().top;
}
答案 4 :(得分:1)
只是另一种解决方法:即使元素不存在,您也可以运行var d = $('#someElement').offset()
而不会导致错误(它只会返回null)。所以试试:
var d = $('#someElement').offset();
if (d) {
d = d.top;
}
答案 5 :(得分:1)
不要使用jQuery!使用getElementById
,因为如果元素不在DOM中,则结果为null
。
if (document.getElementById("someElement")) {
}
答案 6 :(得分:0)
使用选择器返回的jQuery集合的.length属性:
if ( $( "#myDiv" ).length ) {
$( "#myDiv" ).show();
}
请注意,并不总是需要测试元素是否存在。以下代码将显示该元素是否存在,如果不存在则不执行任何操作(没有错误):
$( "#myDiv" ).show();