2011-03-10 37 views
0

在jQuery的,是有必要检查变量包含的东西或jQuery的本身做它...让我用一个例子解释:jquery:在应用效果之前验证元素是否为空...是否有必要?

var image = $(placeholder).children('img'); 


// if placeholder contains image, hide it! 
if (image.length) { 
    alert('found one, hide it!'); 
    $(image).fadeOut(400); 
} 

... more code here... 

我已经意识到,只是写了以下的工作原理相同...

var image = $(placeholder).children('img'); 
$(image).fadeOut(400); 

我的意思是,先做一个检查或让jquery处理它是好的做法吗?

回答

2

纠正我,如果我错 - 当你做$(image).fadeOut(400),该​​功能实际上是运行针对由$(image)返回的所有元素(注意:$(image)回报元素的数组)。因此,如果$(image)返回空数组,那么fadeOut(400)将针对0元素运行,所以什么都不会发生。

要回答你的问题,不需要你有if()来检查长度,jQuery会为你做。在我看来,检查长度只是多余的,会损害性能,所以我不会说这是一个好习惯。