2011-01-07 117 views
2

在删除它之前检查该元素是否存在或不必要? 例如:jquery良好做法

if(('#el').length > 0) { 
    $('#el').remove(); 
} 

是相同

$('#el').remove(); 

回答

2

所有的jQuery选择器都会返回一个jQuery对象的集合(可能是空的),所以如果$('#el')(或更有可能$('.class'))返回多个对象remove()会将它们全部删除。同样,如果您的选择器不返回任何对象remove()不会删除任何对象。

所以没有。这不是必要的。

0

这取决于你是否需要该元素与否。

+0

但是,如果我只想删除它没有必要检查它的存在,对吧? – Nick 2011-01-07 11:02:25

2

我敢说,第一个版本在功能和性能方面绝对没有增加。如果你的选择器'选择'0元素,那么jQuery不会删除任何东西。

1

我会说没有,这是没有必要的。

特别是在你的例子中,因为在代码运行之后,你的程序的状态在两种情况下都是完全相同的,无论代码在运行之前的状态如何(去除为idempotent)。

0

我想这在阅读时会更加明确一些,但这是我能想到的唯一“好处”。看起来并不值得。但是如果你需要做一些事情,你确实删除了元素,你可以首先检查是否有任何删除。