我想在jQuery中使用.next()
测试特定div是否在其后面有另一个div。如果它之后有另一个div,那么我想调整一些CSS。
我目前正在检查.next()
div的CSS,如果它不是undefined
,那么继续CSS更改,但我不认为这是一个非常可靠的方式。
var hasNext = $('.slide.active').next().attr('class'); // check the class of the "next" element
if(hasNext !== 'undefined'){
// There is another slide! Add some arrows
$('.portfolio .fp-controlArrow.fp-next').css('display','block');
}
首先,这不起作用(尽管console.log
显示hasNext = undefined
上述if语句正在传递。
其次,我知道这是一种笨拙的做事方式。
那你怎么做?基本上:
if (slide with class `active` has a NEXT sibling){
do this css
}
答案 0 :(得分:3)
只需检查.next()
返回的对象的长度,如果没有下一个兄弟,它将为0
var hasNext = $('.slide.active').next().length; // check the class of the "next" element
if (hasNext) {//check for truthyness
// There is another slide! Add some arrows
$('.portfolio .fp-controlArrow.fp-next').css('display', 'block');
}
答案 1 :(得分:1)
应该是:
if (typeof hasNext !== 'undefined')