替代jQuery的.last

时间:2012-05-18 13:17:19

标签: javascript jquery

我需要使用1.3.2库,遗憾的是它不支持最后的功能。这导致我的功能失败:

$op.last().next().after($op);
  

“$ op.last不是函数”

演示:

http://jsfiddle.net/uscyH/

我在纯js中重写此功能是不成功的,有什么建议吗?注意,我还需要.first(),但我假设我能够从.last备用代码中推断出它。非常感谢 -

5 个答案:

答案 0 :(得分:11)

您可以使用自1.0以来存在的:last选择器:

$op.filter(':last')

答案 1 :(得分:5)

要获取最后一个元素,请执行以下操作:

$op.slice( -1 )

现场演示: http://jsfiddle.net/uscyH/4/

  

jQuery .slice()方法在JavaScript .slice()之后被模式化   数组的方法。它模仿的一个特点就是能力   将负数作为startend传递   参数。如果提供负数,则表示位置   从集合的结尾开始,而不是从开始。

来源:http://api.jquery.com/slice/


要获得第一个元素:

$op.eq( 0 )

现场演示: http://jsfiddle.net/uscyH/5/

答案 2 :(得分:1)

假设$op是选项集合,请使用以下方法获取集合中的第一个DOM元素:

var first = $op[0];

和最后一次使用:

var last = $op[$op.length-1];

答案 3 :(得分:1)

看起来您可以使用此方法找到最后一个或第一个项目 http://jsfiddle.net/uscyH/3/

alert("Last is: "+$("option:last").html()+" and first is: "+$("option:first").html());​

更新:您现在有很多想法可供选择。随意使用您想要的任何方法。这种方法可能不是最快的方法,因为它正在执行两个DOM查询,而不是在您已经看起来存储在数组中的列表上运行。很高兴看到jQuery如何在这些版本中如此强大。感谢大家的想法!

答案 4 :(得分:0)

$($op[$op.length-1]).next().after($op);

您也可以选择扩展jquery并创建自己的最后一个方法。