如何在Jquery中评估函数。

时间:2014-03-05 05:08:58

标签: javascript jquery

我的HTML,

<div id="fullcontainer">
    <div id="a">a</div>
    <div id="b">b</div>
    <div id="c">c</div>
</div>

JS,

   var cache = $('#fullcontainer').children();
   var index = cache.length - 2;
   cache.filter(':lt('+ index +')').remove();

我上面给出的代码正常工作正常,因为我已经在一个单独的变量中缓存了长度,但是下面没有缓存的代码不起作用,

   var cache = $('#fullcontainer').children();
   cache.filter(':lt('+ cache.length - 2 +')').remove();

据我所知,应该首先评估最后一级的表达式,但我不知道上面的代码会发生什么,请提供建议并提供一些解释。

DEMO of the working oneDemo of the non - working one

3 个答案:

答案 0 :(得分:2)

如果您将cache.length - 2括在brackets中,

,它将有效
cache.filter(':lt('+ (cache.length - 2) +')').remove();

Working Demo

答案 1 :(得分:2)

您的代码cache.filter(':lt('+ cache.length - 2 +')').remove();会被评估为

cache.filter('NaN)').remove();

应该是

cache.filter(':lt('+ (cache.length - 2) +')').remove();

答案 2 :(得分:2)

您需要将值包装在方括号( )中,以使其评估为数字:

cache.filter(':lt('+ (cache.length - 2) +')').remove();

<强> Updated Fiddle