[英].first('li) select first item in the list not working
希望您能提供帮助,此代码无法正常工作。 它可以选择下一个图像,但是如果它在最后一个图像上并且没有“下一个图像”,那么我想在“ li”中选择第一个图像。 我添加了一个if条件:if(nextLi.value!=='')...但这似乎不起作用。
function nextImg(){
$('#background').find('img').animate({'opacity': 0}, 500, function (){
var nextLi = $('.sel').parent().parent().next('li').find('a');
if (nextLi.value !=='') {
var nextLiA = nextLi.attr('rel');
$('#background').find('img').attr({'src':nextLiA});
$('.sel').appendTo(nextLi);
} else {
var nextLi = $('.sel').parent().parent().first('li').find('a');
var nextLiA = nextLi.attr('rel');
$('#background').find('img').attr({'src':nextLiA});
$('.sel').appendTo(nextLi);
}
});
}
您应该改用length
,请执行以下操作:
if (!nextLi.length){
//do stuff
}
如果选择为空,则nextLi.length
将返回0(即false
),因此您添加了!
nextLi
是一个jQuery对象。 如果要查看它是否包含任何元素,即是否有任何与您使用的选择器匹配的元素,则只需检查其.length
属性即可:
if (nextLi.length > 0 ) {
还要注意,if块中的三行与else的最后三行相同,因此可以如下简化代码:
if (nextLi.length === 0) {
nextLi = $('.sel').parent().parent().first('li').find('a');
}
$('#background').find('img').attr({'src': nextLi.attr('rel') });
$('.sel').appendTo(nextLi);
(由于仅在一个地方使用了nextLia
变量,因此我已将其完全删除-您可以在设置src
属性时直接使用nextLi.attr('rel')
。)
尝试这个。 它检查li
的大小,如果未找到任何内容,则选择第一个。
function nextImg(){
$('#background').find('img').animate({'opacity': 0}, 500, function (){
var li = $('.sel').parent().parent().next('li').find('a');
if(li.length == 0) {
//if there is not last item
li = $('.sel').parent().parent().first('li').find('a'); //get the first item
}
var liA = li.attr('rel');
$('#background').find('img').attr({'src':liA});
$('.sel').appendTo(li);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.