本文首发于 lzcBlog,永久链接为 https://www.lzcapp.cn/archives/557/。推荐转移到原网址阅读,体验更佳。


对于动态生成内容的网页,常常遇到需要判断元素是否存在的场景。比如说在 lzcCFNode 中,就要使用此功能。

1.原生 JS

1.1.问题描述

对于不存在的对象进行操作,会抛出错误。例如

document.getElementById('lzcBlog').innerText('The link of lzcBlog is www.lzcapp.cn');

其中,假如 ID 为 lzcBlog 的元素不存在,将会抛出一个错误:

document.getElementById('lzcBlog') is null, blablabla

1.2.解决方案

解决方案非常简单,通过判断该元素是否存在即可。

var lzcBlog = document.getElementById('lzcBlog');
if(lzcBlog)
{
    console.log('ID 为 lzcBlog 的元素存在于页面上。');
}
else
{
    console.log('ID 为 lzcBlog 的元素不存在。');
}

2.jQuery

2.1.问题描述

在 jQuery 中使用一个不存在的元素完全不会报错,请放心大胆使用。假如你仅仅是想检测元素是否存在,那你来对地方了。

2.2.解决方案

jQuery 对象的 length 属性可以帮助判断。当选择器传回的不是空元素时,其 length 属性不为 0。

var lzcBlog = $('#lzcBlog');
if(lzcBlog.length > 0)
{
    console.log('ID 为 lzcBlog 的元素存在于页面上。');
}
else
{
    console.log('ID 为 lzcBlog 的元素不存在。');
}