javascript检查DOM元素是否存在最佳实践

检查DOM元素是否存在于 javascript中的最佳做法是什么?

在使用它之前,应该检查一个项目是否存在,像这样吗?

if ($("#" + machineId + packageId.removeSpecialChars().toupperCase() + "").size() != 0) {
  var row = $("#" + machineId + packageId.removeSpecialChars().toupperCase() + "");
}

这不会执行packageId.removeSpecialChars().toupperCase()两次?

或者这会是更好的选择吗?

var row = $("#" + machineId + packageId.removeSpecialChars().toupperCase() + ""); 
if (row)
{
  // do something
}

但是,当没有找到它会不会抛出异常?

解决方法

当您实际使用DOM元素时,是的,您应该检查它是否存在,然后再尝试使用它,以避免JavaScript错误.但是,您不使用DOM元素,您正在使用一个可能包含DOM元素的jQuery对象.

jQuery函数已经处理了在它的元素集中没有匹配的情况,所以你不需要在尝试使用它们之前明确地检查一下元素.如果您尝试使用.get()函数或[index]方括号符号直接引用该集合内的DOM元素,那么您只需要这样做.

除此之外,版本1.8中已不推荐使用.size() jQuery函数,您应该直接使用jQuery对象的length属性来检查是否有元素,因此:

var $object = $('a-selector');
if($object.length) {
    // there's at least one matching element
}

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...