我的结构如下:
<div id="views">
<div id="right-view" class="current-view">
</div>
<div id="front-view">
</div>
<div id="left-view">
</div>
</div>
我希望像$(".current-view").next()
这样的语句能够以如下方式表现:if&#34; .current-view&#34;被分配给最后一个孩子(&#34;#left-view&#34;,在这种情况下),返回第一个孩子(&#34;#right-view&#34;,在这种情况下)。
答案 0 :(得分:1)
你必须自己做,例如:
var next = $(".current-view").next();
if (!next[0]) {
// No next, use first
next = $("#right-view");
}
或者,如果您想避免使用“右视图”id
值:
var current = $(".current-view");
var next = current.next();
if (!next[0]) {
// No next, use first
next = current.siblings().first();
}
$("#theButton").click(function() {
var current = $(".current-view");
var next = current.next();
if (!next[0]) {
next = current.siblings().first();
}
current.removeClass("current-view");
next.addClass("current-view");
});
答案 1 :(得分:0)
这定义了你所要求的函数getNext()
......
$.fn.getNext = function() {
if ($(this).next().length === 0) {
return $(this).parent().children().first();
} else {
return $(this).next();
}
}
$(".current-view").getNext();
答案 2 :(得分:-1)
这是使用模数的解决方案:
http://jsbin.com/agasay/edit#javascript,html
$.fn.myNext = function()
{
var result = $("body p").index($(this))+1;
return $("body p").eq(result % $("body p").length );
} ;
alert($("body p:first").myNext().text());
alert($("body p:first").myNext().myNext().text());
alert($("body p:first").myNext().myNext().myNext().text());