1

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

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

“$op.last 不是函数”

演示:

http://jsfiddle.net/uscyH/

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

4

5 回答 5

11

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

$op.filter(':last')
于 2012-05-18T13:19:19.463 回答
5

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

$op.slice( -1 )

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

jQuery.slice()方法是在 JavaScript .slice() 数组方法之后设计的。它模仿的功能之一是能够将负数作为startorend 参数传递。如果提供了负数,则表示从集合末尾开始的位置,而不是开头。

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


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

$op.eq( 0 )

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

于 2012-05-18T13:22:44.767 回答
1

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

var first = $op[0];

最后一次使用:

var last = $op[$op.length-1];
于 2012-05-18T13:20:17.210 回答
1

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

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

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

于 2012-05-18T13:20:55.030 回答
0
$($op[$op.length-1]).next().after($op);

您还可以选择扩展 jquery 并创建自己的 last 方法。

于 2012-05-18T13:21:01.283 回答