检查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 }
原文地址:https://www.jb51.cc/js/151561.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。