我的页面有一个警告框,显示没有要显示的条目.当通过 AJAX添加新条目时,我删除了这个简单的元素: $('#empty-alert').remove(); 我在想:当我添加以下条目时,我只是再次调用此方法,无论元素
$('#empty-alert').remove();
我在想:当我添加以下条目时,我只是再次调用此方法,无论元素是否存在.首先检查存在是否更好,如果存在,请调用remove()?喜欢:
if($('#empty-alert').length){ $('#empty-alert').remove(); }
或者当元素存在并且第一个想法已经检查存在并在一次调用中删除时,这只是额外的工作吗?
作为参考,我的理解相当松散:jQuery中的$()选择器总是返回一个jQuery集合.如果没有匹配的元素,则该集合为空.
当你在jQuery集合上调用诸如remove()之类的函数时,它实际上遍历集合,对其中的每个元素执行操作.如果集合为空,它将永远不会迭代,因此在这种情况下永远不会对任何元素调用remove().
例如,使用这种情况:
$(‘#empty-alert’)将返回[“#empty-alert jQuery object”]或[](空数组)的集合;
调用.remove()实际上是在幕后做这样的事情:
//jqCollection is one of the arrays previously mentioned jqCollection.each(function(){ this.remove(); //'this' is a single jQuery object from the jqcollection });