gpt4 book ai didi

javascript - jQuery,下一个,上一个,循环到第一个和最后一个

转载 作者:行者123 更新时间:2023-11-28 12:37:17 26 4
gpt4 key购买 nike

很抱歉这个令人困惑的标题。我想做的是一个函数(或者只是一个简单的方法),它将执行简单的 .next() 操作,但如果没有下一个元素,则先匹配。对于 .prev() 也是如此 - 如果没有前一个元素,则匹配最后一个。所以我这样做了:

var current_selected = getSelected();
if(current_selected.length) {
var prev = current_selected.prev();
if(prev.length) {
setSelected(prev);
return;
}
}
setSelected(getLast());

但我不太喜欢它,我认为有一些很好的方法可以做到。有什么想法吗?(getSelectedgetLast 返回 jQuery 对象。

最佳答案

您可以创建一些方便的小插件:

$.fn.nextWrap = function() {
var $next = this.next();
if ($next.length) return $next;
return this.siblings().first();
};

$.fn.prevWrap = function() {
var $prev = this.prev();
if ($prev.length) return $prev;
return this.siblings().last();
};

然后你可以简单地执行$('#something').nextWrap()$('#something').prevWrap()

这是一个快速演示:http://jsfiddle.net/qpDKL/

注意:这的行为大部分类似于 prev()next() (当然,具有换行行为),但它不支持 prev|next(selector) 语法。

<小时/>

编辑:这是一个稍微简洁的插件语法,因为它们几乎是相同的:

$.each(['next', 'prev'], function(i, nextOrPrev) {
$.fn[nextOrPrev + 'Wrap'] = function() {
var $item = this[nextOrPrev]();
if ($item.length) return $item;
return this.siblings()[nextOrPrev === 'next' ? 'first' : 'last']();
};
});

关于javascript - jQuery,下一个,上一个,循环到第一个和最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com