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

前端之家收集整理的这篇文章主要介绍了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
}

猜你在找的JavaScript相关文章