jQuery和.length> 0

时间:2011-04-01 13:42:23

标签: jquery coding-style

var sd = jQuery(".bla");
if (sd.length>0){

}

有没有更酷的方法来编写该代码?我想要一些代码只有在有一些名为bla的类时执行。我知道我可以使用每个,但我不想,我知道我可以做sd.action()之类的东西,但我不想这样做。

6 个答案:

答案 0 :(得分:5)

我不确定这是多么“酷”,只是:

if ($('.bla').length) {
    // Do stuff
}

会做的伎俩。

编辑:如果您需要在检查后重新使用选择器,您仍然可以使用相同的语法:

var sd = $(".bla");

if (sd.length) {
    // Do stuff
}

答案 1 :(得分:3)

如果您不想使用长度等,请使代码看起来更“凉爽”。

jQuery.fn.extend({
    exists: function() {
      return this.length !== 0;
    }
});

if (jQuery(".bla").exists()) {
  console.log('found');
}

答案 2 :(得分:2)

老实说,这是一种完全可以接受的快速方式(没有函数调用)来做你想做的事情。我总是做类似的事情。即使使用$().each也有点慢,因为它需要函数调用,即使它实际上不会任何事情。

关于这里的另一个答案,这也是正确的:多次执行$('.bla')也会更慢。如果您认为以后可能会使用$('.bla'),最好将其存储在代码中的变量中。这避免了另一个jQuery调用,并让浏览器负责垃圾收集。

希望这是有道理的! :)

答案 3 :(得分:1)

制作这种外观的“最酷”方式(在我看来)是

if ( $('.bla').length > 0 ) {
    // ...
}

答案 4 :(得分:1)

您可以使用.size()

$(“。blah”)。size()> 0

http://api.jquery.com/size/

答案 5 :(得分:1)

不。

我不认为有什么更酷。 (因此,我不能让我只回答问题)